flush
[m6w6/ext-psi] / src / parser.re
index 58deda2234e214c6bf4e02a04974edae8bb29b5a..81005f2c07acd238bcecd8fde42742ab6f83000b 100644 (file)
@@ -30,8 +30,8 @@ PSI_Parser *PSI_ParserInit(PSI_Parser *P, const char *filename, psi_error_cb err
        }
        memset(P, 0, sizeof(*P));
 
+       P->psi.file.fn = strdup(filename);
        P->fp = fp;
-       P->fn = strdup(filename);
        P->line = 1;
        P->error = error;
        P->flags = flags;
@@ -144,21 +144,6 @@ void PSI_ParserFree(PSI_Parser **P)
        return t; \
 } while(1)
 
-/*             DIGIT = [0-9]
-               DIGITS = DIGIT+
-               DECIMALS = (+|-)? DIGIT* "."
-               digits ::= digits DIGIT.
-               decimals ::= digits DOT digits.
-               decimals ::= DOT digits.
-               decimals ::= digits DOT.
-               number ::= digits.
-               number ::= PLUS digits.
-               number ::= MINUS digits.
-               number ::= decimals.
-               number ::= MINUS decimals.
-               number ::= PLUS decimals.
-
-*/
 token_t PSI_ParserScan(PSI_Parser *P)
 {
        for (;;) {
@@ -179,7 +164,7 @@ token_t PSI_ParserScan(PSI_Parser *P)
                QUOTED_STRING = "\"" ([^\"])+ "\"";
                NUMBER = [+-]? [0-9]* "."? [0-9]+ ([eE] [+-]? [0-9]+)?;
 
-               "#" .* "\n" { ++P->line; RETURN(PSI_T_COMMENT);}
+               ("#"|"//") .* "\n" { ++P->line; continue;}
                "(" {RETURN(PSI_T_LPAREN);}
                ")" {RETURN(PSI_T_RPAREN);}
                ";" {RETURN(PSI_T_EOS);}
@@ -201,21 +186,17 @@ token_t PSI_ParserScan(PSI_Parser *P)
                'MIXED' {RETURN(PSI_T_MIXED);}
                'VOID' {RETURN(PSI_T_VOID);}
                'BOOL' {RETURN(PSI_T_BOOL);}
-               'CHAR' {RETURN(PSI_T_CHAR);}
-               'SHORT' {RETURN(PSI_T_SHORT);}
                'INT' {RETURN(PSI_T_INT);}
-               'LONG' {RETURN(PSI_T_LONG);}
                'FLOAT' {RETURN(PSI_T_FLOAT);}
                'DOUBLE' {RETURN(PSI_T_DOUBLE);}
-               'SIZE_T' {RETURN(PSI_T_SIZE_T);}
-               'SINT8' {RETURN(PSI_T_SINT8);}
-               'UINT8' {RETURN(PSI_T_UINT8);}
-               'SINT16' {RETURN(PSI_T_SINT16);}
-               'UINT16' {RETURN(PSI_T_UINT16);}
-               'SINT32' {RETURN(PSI_T_SINT32);}
-               'UINT32' {RETURN(PSI_T_UINT32);}
-               'SINT64' {RETURN(PSI_T_SINT64);}
-               'UINT64' {RETURN(PSI_T_UINT64);}
+               'INT8_T' {RETURN(PSI_T_INT8);}
+               'UINT8_T' {RETURN(PSI_T_UINT8);}
+               'INT16_T' {RETURN(PSI_T_INT16);}
+               'UINT16_T' {RETURN(PSI_T_UINT16);}
+               'INT32_T' {RETURN(PSI_T_INT32);}
+               'UINT32_T' {RETURN(PSI_T_UINT32);}
+               'INT64_T' {RETURN(PSI_T_INT64);}
+               'UINT64_T' {RETURN(PSI_T_UINT64);}
                'STRING' {RETURN(PSI_T_STRING);}
                'ARRAY' {RETURN(PSI_T_ARRAY);}
                'FUNCTION' {RETURN(PSI_T_FUNCTION);}