KiCad PCB EDA Suite
pcb_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 PCB_LEXER_H_
7 #define PCB_LEXER_H_
8 
9 #include <dsnlexer.h>
10 
23 namespace PCB_KEYS_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_add_net = 0,
234  };
235 } // namespace PCB_KEYS_T
236 
237 
244 class PCB_LEXER : public DSNLEXER
245 {
247  static const KEYWORD keywords[];
248  static const unsigned keyword_count;
249 
250 public:
257  PCB_LEXER( const std::string& aSExpression, const wxString& aSource = wxEmptyString ) :
258  DSNLEXER( keywords, keyword_count, aSExpression, aSource )
259  {
260  }
261 
271  PCB_LEXER( FILE* aFile, const wxString& aFilename ) :
272  DSNLEXER( keywords, keyword_count, aFile, aFilename )
273  {
274  }
275 
287  PCB_LEXER( LINE_READER* aLineReader ) :
288  DSNLEXER( keywords, keyword_count, aLineReader )
289  {
290  }
291 
296  static const char* TokenName( PCB_KEYS_T::T aTok );
297 
309  {
310  return (PCB_KEYS_T::T) DSNLEXER::NextTok();
311  }
312 
322  {
324  }
325 
335  {
337  }
338 
344  {
345  return (PCB_KEYS_T::T) DSNLEXER::CurTok();
346  }
347 
353  {
354  return (PCB_KEYS_T::T) DSNLEXER::PrevTok();
355  }
356 };
357 
358 // example usage
359 
370 #endif // PCB_LEXER_H_
PCB_KEYS_T::T NextTok()
Function NextTok returns the next token found in the input file or T_EOF when reaching the end of fil...
Definition: pcb_lexer.h:308
Class LINE_READER is an abstract class from which implementation specific LINE_READERs may be derived...
Definition: richio.h:81
int NeedSYMBOLorNUMBER()
Function NeedSYMBOLorNUMBER calls NextTok() and then verifies that the token read in satisfies bool I...
Definition: dsnlexer.cpp:418
PCB_LEXER(FILE *aFile, const wxString &aFilename)
Constructor ( FILE* ) takes aFile already opened for reading and aFilename as parameters.
Definition: pcb_lexer.h:271
int PrevTok()
Function PrevTok returns whatever NextTok() returned the 2nd to last time it was called.
Definition: dsnlexer.h:329
PCB_LEXER(const std::string &aSExpression, const wxString &aSource=wxEmptyString)
Constructor ( const std::string&, const wxString& )
Definition: pcb_lexer.h:257
PCB_KEYS_T::T CurTok()
Function CurTok returns whatever NextTok() returned the last time it was called.
Definition: pcb_lexer.h:343
PCB_LEXER(LINE_READER *aLineReader)
Constructor ( LINE_READER* ) intializes a lexer and prepares to read from aLineReader which is assume...
Definition: pcb_lexer.h:287
Class PCB_LEXER is an automatically generated class using the TokenList2DnsLexer.cmake technology...
Definition: pcb_lexer.h:244
int NeedSYMBOL()
Function NeedSYMBOL calls NextTok() and then verifies that the token read in satisfies bool IsSymbol(...
Definition: dsnlexer.cpp:409
static const KEYWORD keywords[]
Auto generated lexer keywords table and length:
Definition: pcb_lexer.h:247
PCB_KEYS_T::T NeedSYMBOL()
Function NeedSYMBOL calls NextTok() and then verifies that the token read in satisfies bool IsSymbol(...
Definition: pcb_lexer.h:321
int CurTok()
Function CurTok returns whatever NextTok() returned the last time it was called.
Definition: dsnlexer.h:320
static const char * TokenName(PCB_KEYS_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...
Definition: pcb_lexer.h:23
PCB_KEYS_T::T PrevTok()
Function PrevTok returns whatever NextTok() returned the 2nd to last time it was called.
Definition: pcb_lexer.h:352
PCB_KEYS_T::T NeedSYMBOLorNUMBER()
Function NeedSYMBOLorNUMBER calls NextTok() and then verifies that the token read in satisfies bool I...
Definition: pcb_lexer.h:334
T
enum T contains all this lexer's tokens.
Definition: pcb_lexer.h:26
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:540
static const unsigned keyword_count
Definition: pcb_lexer.h:248
Struct KEYWORD holds a keyword string and its unique integer token.
Definition: dsnlexer.h:40
Class DSNLEXER implements a lexical analyzer for the SPECCTRA DSN file format.
Definition: dsnlexer.h:79