#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