+align setstring(yyextra, yylval, yytext); return TOK_ALIGN;
+const setstring(yyextra, yylval, yytext); return CONST;
+char setstring(yyextra, yylval, yytext); return CHAR;
+clock setstring(yyextra, yylval, yytext); return CLOCK;
+double setstring(yyextra, yylval, yytext); return DOUBLE;
+enum setstring(yyextra, yylval, yytext); return ENUM;
+env setstring(yyextra, yylval, yytext); return ENV;
+event setstring(yyextra, yylval, yytext); return EVENT;
+floating_point setstring(yyextra, yylval, yytext); return FLOATING_POINT;
+float setstring(yyextra, yylval, yytext); return FLOAT;
+integer setstring(yyextra, yylval, yytext); return INTEGER;
+int setstring(yyextra, yylval, yytext); return INT;
+long setstring(yyextra, yylval, yytext); return LONG;
+short setstring(yyextra, yylval, yytext); return SHORT;
+signed setstring(yyextra, yylval, yytext); return SIGNED;
+stream setstring(yyextra, yylval, yytext); return STREAM;
+string setstring(yyextra, yylval, yytext); return STRING;
+struct setstring(yyextra, yylval, yytext); return STRUCT;
+trace setstring(yyextra, yylval, yytext); return TRACE;
+callsite setstring(yyextra, yylval, yytext); return CALLSITE;
+typealias setstring(yyextra, yylval, yytext); return TYPEALIAS;
+typedef setstring(yyextra, yylval, yytext); return TYPEDEF;
+unsigned setstring(yyextra, yylval, yytext); return UNSIGNED;
+variant setstring(yyextra, yylval, yytext); return VARIANT;
+void setstring(yyextra, yylval, yytext); return VOID;
+_Bool setstring(yyextra, yylval, yytext); return _BOOL;
+_Complex setstring(yyextra, yylval, yytext); return _COMPLEX;
+_Imaginary setstring(yyextra, yylval, yytext); return _IMAGINARY;
+[1-9]{DIGIT}*{INTEGER_SUFFIX}? PARSE_INTEGER_LITERAL(10); return INTEGER_LITERAL;
+0{OCTALDIGIT}*{INTEGER_SUFFIX}? PARSE_INTEGER_LITERAL(8); return INTEGER_LITERAL;
+0[xX]{HEXDIGIT}+{INTEGER_SUFFIX}? PARSE_INTEGER_LITERAL(16); return INTEGER_LITERAL;
+
+{IDENTIFIER} printf_debug("<IDENTIFIER %s>\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER;
+[ \t\r\n] ; /* ignore */
+. printfl_error(yylineno, "invalid character '0x%02X'", yytext[0]); return ERROR;