/* * Buffered input line and its input index. */ #include "clist.h" #define MAXLINELEN 1000 /* * Def'd in translator.h -- NOT */ static char *LineBuf = 0; static int LineInd; #define isodigit(d) (isdigit(d) and (not ((d == '8') or (d == '9')))) /* * Stack of pending input files, pushed when #include's are seen. It must be a * stack because #include's can be nested. */ List* InFileStack; /* * A src loc plus FILE pointer, for saving things during an #include. */ typedef struct SrcFileLocStruct { FILE *File; SrcLoc loc; } SrcFileLoc; /* * Recognition state for #define macros. */ static int DefineState; /* * Visible functions. */ int yylex(); bool SetLexInFile(); void PushLexInFile(); SrcFileLoc *PopLexInFile(); SrcLoc CurSrcLoc(); char* GetLastComment(); void ClearComment(); /* * Private functions. */ char *GetMacroBody(); void lexerror(); char getprevc();