callable and func_ptr typedef fixes
[m6w6/ext-psi] / src / parser.re
index e7787fc6cd47d64d32f0592f9f6cb5d0ea185308..7e445fd8a0a99c1fc9296803fe920e792cdce7a0 100644 (file)
@@ -127,77 +127,6 @@ void PSI_ParserFree(PSI_Parser **P)
 # error BSIZE must be greater than YYMAXFILL
 #endif
 
-#define PSI_T(n) \
-(n) == PSI_T_NAME ? "NAME" : \
-(n) == PSI_T_PLUS ? "PLUS" : \
-(n) == PSI_T_MINUS ? "MINUS" : \
-(n) == PSI_T_SLASH ? "SLASH" : \
-(n) == PSI_T_ASTERISK ? "ASTERISK" : \
-(n) == PSI_T_TEMP ? "TEMP" : \
-(n) == PSI_T_FREE ? "FREE" : \
-(n) == PSI_T_SET ? "SET" : \
-(n) == PSI_T_LET ? "LET" : \
-(n) == PSI_T_RETURN ? "RETURN" : \
-(n) == PSI_T_LIB ? "LIB" : \
-(n) == PSI_T_INT ? "INT" : \
-(n) == PSI_T_UNSIGNED ? "UNSIGNED" : \
-(n) == PSI_T_EOF ? "EOF" : \
-(n) == PSI_T_QUOTED_STRING ? "QUOTED_STRING" : \
-(n) == PSI_T_EOS ? "EOS" : \
-(n) == PSI_T_STRUCT ? "STRUCT" : \
-(n) == PSI_T_LBRACE ? "LBRACE" : \
-(n) == PSI_T_RBRACE ? "RBRACE" : \
-(n) == PSI_T_COLON ? "COLON" : \
-(n) == PSI_T_LPAREN ? "LPAREN" : \
-(n) == PSI_T_NUMBER ? "NUMBER" : \
-(n) == PSI_T_RPAREN ? "RPAREN" : \
-(n) == PSI_T_BOOL ? "BOOL" : \
-(n) == PSI_T_FLOAT ? "FLOAT" : \
-(n) == PSI_T_STRING ? "STRING" : \
-(n) == PSI_T_CONST ? "CONST" : \
-(n) == PSI_T_NSNAME ? "NSNAME" : \
-(n) == PSI_T_EQUALS ? "EQUALS" : \
-(n) == PSI_T_TYPEDEF ? "TYPEDEF" : \
-(n) == PSI_T_VOID ? "VOID" : \
-(n) == PSI_T_LBRACKET ? "LBRACKET" : \
-(n) == PSI_T_RBRACKET ? "RBRACKET" : \
-(n) == PSI_T_COMMA ? "COMMA" : \
-(n) == PSI_T_ELLIPSIS ? "ELLIPSIS" : \
-(n) == PSI_T_DOUBLE ? "DOUBLE" : \
-(n) == PSI_T_INT8 ? "INT8" : \
-(n) == PSI_T_UINT8 ? "UINT8" : \
-(n) == PSI_T_INT16 ? "INT16" : \
-(n) == PSI_T_UINT16 ? "UINT16" : \
-(n) == PSI_T_INT32 ? "INT32" : \
-(n) == PSI_T_UINT32 ? "UINT32" : \
-(n) == PSI_T_INT64 ? "INT64" : \
-(n) == PSI_T_UINT64 ? "UINT64" : \
-(n) == PSI_T_FUNCTION ? "FUNCTION" : \
-(n) == PSI_T_NULL ? "NULL" : \
-(n) == PSI_T_TRUE ? "TRUE" : \
-(n) == PSI_T_FALSE ? "FALSE" : \
-(n) == PSI_T_DOLLAR ? "DOLLAR" : \
-(n) == PSI_T_CALLOC ? "CALLOC" : \
-(n) == PSI_T_OBJVAL ? "OBJVAL" : \
-(n) == PSI_T_ARRVAL ? "ARRVAL" : \
-(n) == PSI_T_PATHVAL ? "PATHVAL" : \
-(n) == PSI_T_STRLEN ? "STRLEN" : \
-(n) == PSI_T_STRVAL ? "STRVAL" : \
-(n) == PSI_T_FLOATVAL ? "FLOATVAL" : \
-(n) == PSI_T_INTVAL ? "INTVAL" : \
-(n) == PSI_T_BOOLVAL ? "BOOLVAL" : \
-(n) == PSI_T_TO_OBJECT ? "TO_OBJECT" : \
-(n) == PSI_T_TO_ARRAY ? "TO_ARRAY" : \
-(n) == PSI_T_TO_STRING ? "TO_STRING" : \
-(n) == PSI_T_TO_INT ? "TO_INT" : \
-(n) == PSI_T_TO_FLOAT ? "TO_FLOAT" : \
-(n) == PSI_T_TO_BOOL ? "TO_BOOL" : \
-(n) == PSI_T_MIXED ? "MIXED" : \
-(n) == PSI_T_ARRAY ? "ARRAY" : \
-(n) == PSI_T_OBJECT ? "OBJECT" : \
-(n) == PSI_T_AMPERSAND ? "AMPERSAND" : \
-<UNKNOWN>
-
 #define RETURN(t) do { \
        P->num = t; \
        if (P->flags & PSI_PARSER_DEBUG) { \
@@ -235,6 +164,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                W = [a-zA-Z0-9_];
                NAME = [a-zA-Z_]W*;
                NSNAME = (NAME)? ("\\" NAME)+;
+               DOLLAR_NAME = '$' NAME;
                QUOTED_STRING = "\"" ([^\"])+ "\"";
                NUMBER = [+-]? [0-9]* "."? [0-9]+ ([eE] [+-]? [0-9]+)?;
 
@@ -250,7 +180,6 @@ token_t PSI_ParserScan(PSI_Parser *P)
                "[" {RETURN(PSI_T_LBRACKET);}
                "]" {RETURN(PSI_T_RBRACKET);}
                "=" {RETURN(PSI_T_EQUALS);}
-               "$" {RETURN(PSI_T_DOLLAR);}
                "*" {RETURN(PSI_T_ASTERISK);}
                "&" {RETURN(PSI_T_AMPERSAND);}
                "+" {RETURN(PSI_T_PLUS);}
@@ -263,6 +192,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                'FALSE' {RETURN(PSI_T_FALSE);}
                'NULL' {RETURN(PSI_T_NULL);}
                'MIXED' {RETURN(PSI_T_MIXED);}
+               'CALLABLE' {RETURN(PSI_T_CALLABLE);}
                'VOID' {RETURN(PSI_T_VOID);}
                'BOOL' {RETURN(PSI_T_BOOL);}
                'CHAR' {RETURN(PSI_T_CHAR);}
@@ -314,6 +244,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                NUMBER {RETURN(PSI_T_NUMBER);}
                NAME {RETURN(PSI_T_NAME);}
                NSNAME {RETURN(PSI_T_NSNAME);}
+               DOLLAR_NAME {RETURN(PSI_T_DOLLAR_NAME);}
                QUOTED_STRING {RETURN(PSI_T_QUOTED_STRING);}
                [^] {break;}
                */