-const return CONST;
-char return CHAR;
-double return DOUBLE;
-enum return ENUM;
-event return EVENT;
-floating_point return FLOATING_POINT;
-float return FLOAT;
-integer return INTEGER;
-int return INT;
-long return LONG;
-short return SHORT;
-signed return SIGNED;
-stream return STREAM;
-string return STRING;
-struct return STRUCT;
-trace return TRACE;
-typealias return TYPEALIAS;
-typedef return TYPEDEF;
-unsigned return UNSIGNED;
-variant return VARIANT;
-void return VOID;
-_Bool return _BOOL;
-_Complex return _COMPLEX;
-_Imaginary return _IMAGINARY;
-[1-9]{DIGIT}*{INTEGER_SUFFIX}? return DECIMAL_CONSTANT;
-0{OCTALDIGIT}*{INTEGER_SUFFIX}? return OCTAL_CONSTANT;
-0[xX]{HEXDIGIT}+{INTEGER_SUFFIX}? return HEXADECIMAL_CONSTANT;
-{IDENTIFIER} printf_dbg("<IDENTIFIER %s>\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER;
+align setstring(yyextra, yylval, yytext); return TOK_ALIGN;
+const setstring(yyextra, yylval, yytext); return CONST;
+char setstring(yyextra, yylval, yytext); return CHAR;
+double setstring(yyextra, yylval, yytext); return DOUBLE;
+enum setstring(yyextra, yylval, yytext); return ENUM;
+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;
+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}? setstring(yyextra, yylval, yytext); return DECIMAL_CONSTANT;
+0{OCTALDIGIT}*{INTEGER_SUFFIX}? setstring(yyextra, yylval, yytext); return OCTAL_CONSTANT;
+0[xX]{HEXDIGIT}+{INTEGER_SUFFIX}? setstring(yyextra, yylval, yytext); return HEXADECIMAL_CONSTANT;
+{IDENTIFIER} printf_debug("<IDENTIFIER %s>\n", yytext); setstring(yyextra, yylval, yytext); if (is_type(yyextra, yytext)) return ID_TYPE; else return IDENTIFIER;