1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#ifndef TOKEN_CC #define TOKEN_CC #include "common.cc" #define TOKEN_KINDS_NOLEX \ X(Eof) \ X(Invalid_Char) \ X(Invalid_Literal) enum Token_Kind { #define X(name) Token_Kind_##name, TOKEN_KINDS_NOLEX #undef X }; struct Token { Token_Kind kind; String text; }; #endif