char *value;
union {
- vector v;
+ vec3_t v;
int i;
double f;
int t; /* type */
struct token_s *prev;
#endif
- lex_ctx *ctx;
+ lex_ctx_t ctx;
};
#if 0
size_t open_string_length;
size_t open_string_pos;
+ char *name;
+ size_t line;
size_t sline; /* line at the start of a token */
-
- /*
- * no more 'shallow' copies, instead all new instances
- * of a lex_ctx will just point to this lex_file::ctx.
- * i.e 4/8 byte pointer. Instead of every token getting
- * a 'shallow' 12/24 byte structure.
- */
- lex_ctx ctx;
+ size_t column;
int peek[256];
size_t peekpos;
token tok; /* not a pointer anymore */
struct {
- bool noops;
- bool nodigraphs; /* used when lexing string constants */
- bool preprocessing; /* whitespace and EOLs become actual tokens */
- bool mergelines; /* backslash at the end of a line escapes the newline */
- } flags;
+ unsigned noops:1;
+ unsigned nodigraphs:1; /* used when lexing string constants */
+ unsigned preprocessing:1; /* whitespace and EOLs become actual tokens */
+ unsigned mergelines:1; /* backslash at the end of a line escapes the newline */
+ } flags; /* sizeof == 1 */
int framevalue;
frame_macro *frames;