EOF
[m6w6/ext-psi] / src / parser.re
index 81005f2c07acd238bcecd8fde42742ab6f83000b..d4a25d2a5592e901881d18a56022a59edda168b3 100644 (file)
@@ -141,6 +141,9 @@ void PSI_ParserFree(PSI_Parser **P)
 
 #define RETURN(t) do { \
        P->num = t; \
+       if (P->flags & PSI_PARSER_DEBUG) { \
+               fprintf(stderr, "PSI> TOKEN: %d %.*s (EOF=%d)\n", P->num, (int) (P->cur-P->tok), P->tok, P->num == PSI_T_EOF); \
+       } \
        return t; \
 } while(1)
 
@@ -154,7 +157,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                re2c:define:YYCURSOR = P->cur;
                re2c:define:YYLIMIT = P->lim;
                re2c:define:YYMARKER = P->mrk;
-               re2c:define:YYFILL = "{ if (!PSI_ParserFill(P,@@)) RETURN(-1); }";
+               re2c:define:YYFILL = "{ if (!PSI_ParserFill(P,@@)) RETURN(PSI_T_EOF); }";
                re2c:yyfill:parameter = 0;
 
                B = [^a-zA-Z0-9_];
@@ -197,6 +200,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                'UINT32_T' {RETURN(PSI_T_UINT32);}
                'INT64_T' {RETURN(PSI_T_INT64);}
                'UINT64_T' {RETURN(PSI_T_UINT64);}
+               'UNSIGNED' {RETURN(PSI_T_UNSIGNED);}
                'STRING' {RETURN(PSI_T_STRING);}
                'ARRAY' {RETURN(PSI_T_ARRAY);}
                'FUNCTION' {RETURN(PSI_T_FUNCTION);}