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,
235  };
236 } // namespace PCB_KEYS_T
237 
238 
245 class PCB_LEXER : public DSNLEXER
246 {
248  static const KEYWORD keywords[];
249  static const unsigned keyword_count;
250 
251 public:
258  PCB_LEXER( const std::string& aSExpression, const wxString& aSource = wxEmptyString ) :
259  DSNLEXER( keywords, keyword_count, aSExpression, aSource )
260  {
261  }
262 
272  PCB_LEXER( FILE* aFile, const wxString& aFilename ) :
273  DSNLEXER( keywords, keyword_count, aFile, aFilename )
274  {
275  }
276 
288  PCB_LEXER( LINE_READER* aLineReader ) :
289  DSNLEXER( keywords, keyword_count, aLineReader )
290  {
291  }
292 
297  static const char* TokenName( PCB_KEYS_T::T aTok );
298 
310  {
311  return (PCB_KEYS_T::T) DSNLEXER::NextTok();
312  }
313 
323  {
325  }
326 
336  {
338  }
339 
345  {
346  return (PCB_KEYS_T::T) DSNLEXER::CurTok();
347  }
348 
354  {
355  return (PCB_KEYS_T::T) DSNLEXER::PrevTok();
356  }
357 };
358 
359 // example usage
360 
371 #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:309
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:272
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:258
PCB_KEYS_T::T CurTok()
Function CurTok returns whatever NextTok() returned the last time it was called.
Definition: pcb_lexer.h:344
PCB_LEXER(LINE_READER *aLineReader)
Constructor ( LINE_READER* ) intializes a lexer and prepares to read from aLineReader which is assume...
Definition: pcb_lexer.h:288
Class PCB_LEXER is an automatically generated class using the TokenList2DnsLexer.cmake technology...
Definition: pcb_lexer.h:245
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:248
PCB_KEYS_T::T NeedSYMBOL()
Function NeedSYMBOL calls NextTok() and then verifies that the token read in satisfies bool IsSymbol(...
Definition: pcb_lexer.h:322
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:353
PCB_KEYS_T::T NeedSYMBOLorNUMBER()
Function NeedSYMBOLorNUMBER calls NextTok() and then verifies that the token read in satisfies bool I...
Definition: pcb_lexer.h:335
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:249
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