KiCad PCB EDA Suite
drc_rules_lexer.h
Go to the documentation of this file.
1 
2 /* Do not modify this file it was automatically generated by the
3  * TokenList2DsnLexer CMake script.
4  */
5 
6 #ifndef DRC_RULES_LEXER_H_
7 #define DRC_RULES_LEXER_H_
8 
9 #include <dsnlexer.h>
10 
23 namespace DRCRULE_T
24 {
26  enum T
27  {
28  // these first few are negative special ones for syntax, and are
29  // inherited from DSNLEXER.
37  T_RIGHT = DSN_RIGHT, // right bracket: ')'
38  T_LEFT = DSN_LEFT, // left bracket: '('
39  T_STRING = DSN_STRING, // a quoted string, stripped of the quotes
40  T_EOF = DSN_EOF, // special case for end of file
41 
42  T_allow = 0,
59  };
60 } // namespace DRCRULE_T
61 
62 
69 class DRC_RULES_LEXER : public DSNLEXER
70 {
72  static const KEYWORD keywords[];
73  static const unsigned keyword_count;
74 
75 public:
82  DRC_RULES_LEXER( const std::string& aSExpression, const wxString& aSource = wxEmptyString ) :
83  DSNLEXER( keywords, keyword_count, aSExpression, aSource )
84  {
85  }
86 
96  DRC_RULES_LEXER( FILE* aFile, const wxString& aFilename ) :
97  DSNLEXER( keywords, keyword_count, aFile, aFilename )
98  {
99  }
100 
112  DRC_RULES_LEXER( LINE_READER* aLineReader ) :
113  DSNLEXER( keywords, keyword_count, aLineReader )
114  {
115  }
116 
121  static const char* TokenName( DRCRULE_T::T aTok );
122 
134  {
135  return (DRCRULE_T::T) DSNLEXER::NextTok();
136  }
137 
147  {
149  }
150 
160  {
162  }
163 
169  {
170  return (DRCRULE_T::T) DSNLEXER::CurTok();
171  }
172 
178  {
179  return (DRCRULE_T::T) DSNLEXER::PrevTok();
180  }
181 };
182 
183 // example usage
184 
195 #endif // DRC_RULES_LEXER_H_
LINE_READER is an abstract class from which implementation specific LINE_READERs may be derived to re...
Definition: richio.h:81
int NeedSYMBOLorNUMBER()
Function NeedSYMBOLorNUMBER calls NextTok() and then verifies that the token read in satisfies bool I...
Definition: dsnlexer.cpp:391
DRC_RULES_LEXER(LINE_READER *aLineReader)
Constructor ( LINE_READER* ) initializes a lexer and prepares to read from aLineReader which is assum...
int PrevTok()
Function PrevTok returns whatever NextTok() returned the 2nd to last time it was called.
Definition: dsnlexer.h:329
DRCRULE_T::T NeedSYMBOL()
Function NeedSYMBOL calls NextTok() and then verifies that the token read in satisfies bool IsSymbol(...
T
enum T contains all this lexer's tokens.
DRCRULE_T::T CurTok()
Function CurTok returns whatever NextTok() returned the last time it was called.
DRC_RULES_LEXER(FILE *aFile, const wxString &aFilename)
Constructor ( FILE* ) takes aFile already opened for reading and aFilename as parameters.
static const unsigned keyword_count
int NeedSYMBOL()
Function NeedSYMBOL calls NextTok() and then verifies that the token read in satisfies bool IsSymbol(...
Definition: dsnlexer.cpp:382
int CurTok()
Function CurTok returns whatever NextTok() returned the last time it was called.
Definition: dsnlexer.h:320
DRCRULE_T::T NeedSYMBOLorNUMBER()
Function NeedSYMBOLorNUMBER calls NextTok() and then verifies that the token read in satisfies bool I...
DRCRULE_T::T NextTok()
Function NextTok returns the next token found in the input file or T_EOF when reaching the end of fil...
static const char * TokenName(DRCRULE_T::T aTok)
Function TokenName returns the name of the token in ASCII form.
C++ does not put enum values in separate namespaces unless the enum itself is in a separate namespace...
DRCRULE_T::T PrevTok()
Function PrevTok returns whatever NextTok() returned the 2nd to last time it was called.
int NextTok()
Function NextTok returns the next token found in the input file or DSN_EOF when reaching the end of f...
Definition: dsnlexer.cpp:513
Struct KEYWORD holds a keyword string and its unique integer token.
Definition: dsnlexer.h:40
DSNLEXER implements a lexical analyzer for the SPECCTRA DSN file format.
Definition: dsnlexer.h:79
static const KEYWORD keywords[]
Auto generated lexer keywords table and length:
Class DRC_RULES_LEXER is an automatically generated class using the TokenList2DnsLexer....
DRC_RULES_LEXER(const std::string &aSExpression, const wxString &aSource=wxEmptyString)
Constructor ( const std::string&, const wxString& )