X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser.re;h=81005f2c07acd238bcecd8fde42742ab6f83000b;hp=58deda2234e214c6bf4e02a04974edae8bb29b5a;hb=6f10fb5abd8d46fbfa5b447983f6101fc170585c;hpb=9c71742e3aa27507196cf34daa9eeecde8545a40 diff --git a/src/parser.re b/src/parser.re index 58deda2..81005f2 100644 --- a/src/parser.re +++ b/src/parser.re @@ -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);}