diff options
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r-- | src/compiler/parser.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/parser.h b/src/compiler/parser.h index 8eaea77..cb7af45 100644 --- a/src/compiler/parser.h +++ b/src/compiler/parser.h @@ -13,6 +13,7 @@ typedef enum ParserToken { PARSER_TOKEN_VALUE_INT, PARSER_TOKEN_VALUE_FLOAT, PARSER_TOKEN_VALUE_BOOL, + PARSER_TOKEN_VALUE_CHAR, PARSER_TOKEN_TYPE_TYPE, PARSER_TOKEN_TYPE_FUNCTION, @@ -28,7 +29,7 @@ typedef enum ParserToken { PARSER_TOKEN_TYPE_U64, #ifdef FLOAT_16_SUPPORT PARSER_TOKEN_TYPE_F16, - #endif +#endif PARSER_TOKEN_TYPE_F32, PARSER_TOKEN_TYPE_F64, PARSER_TOKEN_TYPE_F128, @@ -86,7 +87,7 @@ extern const char *PARSER_TOKEN_STRINGS[]; typedef struct ParserOrder { bool ltr; size_t size; - LexerToken data[22]; + LexerToken data[23]; } ParserOrder; typedef struct ParserNode { @@ -130,6 +131,8 @@ typedef u64 ParserNodeIntMetadata; typedef f128 ParserNodeFloatMetadata; +typedef ParserNodeIntMetadata ParserNodeCharMetadata; + typedef struct ParserNodeInfixMetadata { ParserNode *left; ParserNode *right; @@ -177,6 +180,7 @@ ParserNode *parserNoMetadata(LexerNode *node, ParserNode *parent, ParserNode *parserPrintU64(LexerNode *node, LexerNode *end, ParserNode *parent); ParserNode *parserReturn(LexerNode *node, LexerNode *end, ParserNode *parent); ParserNode *parserNumber(LexerNode *node, ParserNode *parent); +ParserNode *parserChar(LexerNode *node, ParserNode *parent); ParserNode *parserBoolValue(LexerNode *node, ParserNode *parent); ParserNode *parserEol(LexerNode *node, LexerNode *begin, ParserNode *parent); ParserNode *parserComma(LexerNode *node, LexerNode *begin, ParserNode *parent); |