diff options
Diffstat (limited to 'test/raytracer/gmllexer.h')
-rw-r--r-- | test/raytracer/gmllexer.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/raytracer/gmllexer.h b/test/raytracer/gmllexer.h new file mode 100644 index 00000000..9b8d630f --- /dev/null +++ b/test/raytracer/gmllexer.h @@ -0,0 +1,21 @@ +/* Lexer for GML */ + +struct lexeme { + enum { + NONE, + OPERATOR, IDENTIFIER, BINDER, BOOLEAN, INTEGER, REAL, STRING, + LBRACE, RBRACE, LBRACKET, RBRACKET, END_OF_FILE + } kind; + union { + int op; /* for operators */ + char * s; /* for identifiers, binders, strings */ + int i; /* for integer and boolean literals */ + flt d; /* for float literals */ + } u; +}; + +extern struct lexeme current_lexeme; + +extern void get_lexeme(void); +extern void discard_lexeme(void); +extern void init_lexer(void); |