From afa78451df1e9fb2810d4ae8cb697b1b2071ff9c Mon Sep 17 00:00:00 2001 From: A404M Date: Mon, 26 May 2025 01:24:56 +0330 Subject: add shift --- src/compiler/ast-tree.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 1 deletion(-) (limited to 'src/compiler/ast-tree.c') diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c index de863c8..93c69ae 100644 --- a/src/compiler/ast-tree.c +++ b/src/compiler/ast-tree.c @@ -202,6 +202,8 @@ const char *AST_TREE_TOKEN_STRINGS[] = { "AST_TREE_TOKEN_BUILTIN_BITWISE_AND", "AST_TREE_TOKEN_BUILTIN_BITWISE_XOR", "AST_TREE_TOKEN_BUILTIN_BITWISE_OR", + "AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT", + "AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT", "AST_TREE_TOKEN_KEYWORD_RETURN", "AST_TREE_TOKEN_KEYWORD_BREAK", @@ -281,6 +283,8 @@ const char *AST_TREE_TOKEN_STRINGS[] = { "AST_TREE_TOKEN_OPERATOR_BITWISE_AND", "AST_TREE_TOKEN_OPERATOR_BITWISE_XOR", "AST_TREE_TOKEN_OPERATOR_BITWISE_OR", + "AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT", + "AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT", "AST_TREE_TOKEN_SCOPE", @@ -361,6 +365,8 @@ void astTreePrint(const AstTree *tree, int indent) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_TYPE_TYPE: case AST_TREE_TOKEN_TYPE_VOID: case AST_TREE_TOKEN_TYPE_I8: @@ -544,6 +550,8 @@ void astTreePrint(const AstTree *tree, int indent) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_SUM: case AST_TREE_TOKEN_OPERATOR_SUB: case AST_TREE_TOKEN_OPERATOR_MULTIPLY: @@ -809,6 +817,8 @@ void astTreeDestroy(AstTree tree) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_TYPE_TYPE: case AST_TREE_TOKEN_TYPE_VOID: case AST_TREE_TOKEN_TYPE_I8: @@ -945,6 +955,8 @@ void astTreeDestroy(AstTree tree) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_SUM: case AST_TREE_TOKEN_OPERATOR_SUB: case AST_TREE_TOKEN_OPERATOR_MULTIPLY: @@ -1195,6 +1207,8 @@ AstTree *copyAstTreeBack(AstTree *tree, AstTreeVariables oldVariables[], case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: return newAstTree(tree->token, NULL, copyAstTreeBack(tree->type, oldVariables, newVariables, variables_size, safetyCheck), @@ -1343,6 +1357,8 @@ AstTree *copyAstTreeBack(AstTree *tree, AstTreeVariables oldVariables[], case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ASSIGN: case AST_TREE_TOKEN_OPERATOR_SUM: case AST_TREE_TOKEN_OPERATOR_SUB: @@ -2168,6 +2184,8 @@ AstTreeRoot *makeAstRoot(const ParserNode *parsedRoot, char *filePath) { case PARSER_TOKEN_OPERATOR_BITWISE_AND: case PARSER_TOKEN_OPERATOR_BITWISE_XOR: case PARSER_TOKEN_OPERATOR_BITWISE_OR: + case PARSER_TOKEN_OPERATOR_SHIFT_LEFT: + case PARSER_TOKEN_OPERATOR_SHIFT_RIGHT: case PARSER_TOKEN_SYMBOL_PARENTHESIS: case PARSER_TOKEN_KEYWORD_IF: case PARSER_TOKEN_KEYWORD_WHILE: @@ -2225,6 +2243,8 @@ AstTreeRoot *makeAstRoot(const ParserNode *parsedRoot, char *filePath) { case PARSER_TOKEN_BUILTIN_BITWISE_AND: case PARSER_TOKEN_BUILTIN_BITWISE_XOR: case PARSER_TOKEN_BUILTIN_BITWISE_OR: + case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: + case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: case PARSER_TOKEN_SYMBOL_BRACKET_LEFT: case PARSER_TOKEN_SYMBOL_BRACKET_RIGHT: goto AFTER_SWITCH; @@ -2362,6 +2382,10 @@ AstTree *astTreeParse(const ParserNode *parserNode) { return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_BUILTIN_BITWISE_XOR); case PARSER_TOKEN_BUILTIN_BITWISE_OR: return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_BUILTIN_BITWISE_OR); + case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: + return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT); + case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: + return astTreeParseKeyword(parserNode, AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT); case PARSER_TOKEN_TYPE_TYPE: return &AST_TREE_TYPE_TYPE; case PARSER_TOKEN_TYPE_FUNCTION: @@ -2507,6 +2531,12 @@ AstTree *astTreeParse(const ParserNode *parserNode) { case PARSER_TOKEN_OPERATOR_BITWISE_NOT: return astTreeParseUnaryOperator(parserNode, AST_TREE_TOKEN_OPERATOR_BITWISE_NOT); + case PARSER_TOKEN_OPERATOR_SHIFT_LEFT: + return astTreeParseBinaryOperator(parserNode, + AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT); + case PARSER_TOKEN_OPERATOR_SHIFT_RIGHT: + return astTreeParseBinaryOperator(parserNode, + AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT); case PARSER_TOKEN_OPERATOR_PLUS: return astTreeParseUnaryOperator(parserNode, AST_TREE_TOKEN_OPERATOR_PLUS); case PARSER_TOKEN_OPERATOR_MINUS: @@ -2690,6 +2720,8 @@ AstTree *astTreeParseFunction(const ParserNode *parserNode) { case PARSER_TOKEN_OPERATOR_BITWISE_AND: case PARSER_TOKEN_OPERATOR_BITWISE_XOR: case PARSER_TOKEN_OPERATOR_BITWISE_OR: + case PARSER_TOKEN_OPERATOR_SHIFT_LEFT: + case PARSER_TOKEN_OPERATOR_SHIFT_RIGHT: case PARSER_TOKEN_BUILTIN_CAST: case PARSER_TOKEN_BUILTIN_TYPE_OF: case PARSER_TOKEN_BUILTIN_SIZE_OF: @@ -2716,6 +2748,8 @@ AstTree *astTreeParseFunction(const ParserNode *parserNode) { case PARSER_TOKEN_BUILTIN_BITWISE_AND: case PARSER_TOKEN_BUILTIN_BITWISE_XOR: case PARSER_TOKEN_BUILTIN_BITWISE_OR: + case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: + case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: case PARSER_TOKEN_SYMBOL_BRACKET_LEFT: case PARSER_TOKEN_SYMBOL_BRACKET_RIGHT: printError(node->str_begin, node->str_end, "Unexpected %s", @@ -3300,6 +3334,8 @@ AstTree *astTreeParseCurlyBracket(const ParserNode *parserNode) { case PARSER_TOKEN_OPERATOR_BITWISE_AND: case PARSER_TOKEN_OPERATOR_BITWISE_XOR: case PARSER_TOKEN_OPERATOR_BITWISE_OR: + case PARSER_TOKEN_OPERATOR_SHIFT_LEFT: + case PARSER_TOKEN_OPERATOR_SHIFT_RIGHT: case PARSER_TOKEN_BUILTIN_CAST: case PARSER_TOKEN_BUILTIN_TYPE_OF: case PARSER_TOKEN_BUILTIN_SIZE_OF: @@ -3326,6 +3362,8 @@ AstTree *astTreeParseCurlyBracket(const ParserNode *parserNode) { case PARSER_TOKEN_BUILTIN_BITWISE_AND: case PARSER_TOKEN_BUILTIN_BITWISE_XOR: case PARSER_TOKEN_BUILTIN_BITWISE_OR: + case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: + case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: case PARSER_TOKEN_SYMBOL_BRACKET_LEFT: case PARSER_TOKEN_SYMBOL_BRACKET_RIGHT: printError(node->str_begin, node->str_end, "Unexpected %s", @@ -3555,6 +3593,8 @@ bool isConst(AstTree *tree) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_TYPE_TYPE: case AST_TREE_TOKEN_TYPE_FUNCTION: case AST_TREE_TOKEN_TYPE_VOID: @@ -3658,7 +3698,9 @@ bool isConst(AstTree *tree) { case AST_TREE_TOKEN_OPERATOR_LOGICAL_OR: case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: - case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: { + case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: { AstTreeInfix *metadata = tree->metadata; return metadata->function->isConst && isConst(metadata->left) && isConst(metadata->right); @@ -3804,6 +3846,8 @@ AstTree *makeTypeOf(AstTree *value) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_EQUAL: case AST_TREE_TOKEN_OPERATOR_NOT_EQUAL: case AST_TREE_TOKEN_OPERATOR_GREATER: @@ -3878,6 +3922,8 @@ AstTree *makeTypeOf(AstTree *value) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_VALUE_OBJECT: case AST_TREE_TOKEN_VARIABLE_DEFINE: case AST_TREE_TOKEN_KEYWORD_RETURN: @@ -3968,6 +4014,8 @@ bool typeIsEqualBack(const AstTree *type0, const AstTree *type1) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_FUNCTION: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: @@ -4010,6 +4058,8 @@ bool typeIsEqualBack(const AstTree *type0, const AstTree *type1) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_OPERATOR_DEREFERENCE: case AST_TREE_TOKEN_OPERATOR_ADDRESS: @@ -4161,6 +4211,8 @@ AstTree *getValue(AstTree *tree, bool copy) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_TYPE_FUNCTION: case AST_TREE_TOKEN_TYPE_TYPE: case AST_TREE_TOKEN_TYPE_VOID: @@ -4221,6 +4273,8 @@ AstTree *getValue(AstTree *tree, bool copy) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_IF: case AST_TREE_TOKEN_KEYWORD_WHILE: case AST_TREE_TOKEN_KEYWORD_COMPTIME: @@ -4317,6 +4371,8 @@ bool isIntType(AstTree *type) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: case AST_TREE_TOKEN_KEYWORD_CONTINUE: @@ -4381,6 +4437,8 @@ bool isIntType(AstTree *type) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ARRAY_ACCESS: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_SHAPE_SHIFTER_ELEMENT: @@ -4434,6 +4492,8 @@ bool isFloatType(AstTree *type) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: case AST_TREE_TOKEN_KEYWORD_CONTINUE: @@ -4492,6 +4552,8 @@ bool isFloatType(AstTree *type) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ARRAY_ACCESS: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_SHAPE_SHIFTER_ELEMENT: @@ -4586,6 +4648,8 @@ bool isEqual(AstTree *left, AstTree *right) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: case AST_TREE_TOKEN_KEYWORD_CONTINUE: @@ -4628,6 +4692,8 @@ bool isEqual(AstTree *left, AstTree *right) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ARRAY_ACCESS: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_SHAPE_SHIFTER_ELEMENT: @@ -4784,6 +4850,13 @@ static const size_t STR_BITWISE_XOR_SIZE = static const char STR_BITWISE_OR[] = "__bitwise_or__"; static const size_t STR_BITWISE_OR_SIZE = sizeof(STR_BITWISE_OR) / sizeof(*STR_BITWISE_OR) - sizeof(*STR_BITWISE_OR); +static const char STR_SHIFT_LEFT[] = "__shift_left__"; +static const size_t STR_SHIFT_LEFT_SIZE = + sizeof(STR_SHIFT_LEFT) / sizeof(*STR_SHIFT_LEFT) - sizeof(*STR_SHIFT_LEFT); +static const char STR_SHIFT_RIGHT[] = "__shift_right__"; +static const size_t STR_SHIFT_RIGHT_SIZE = + sizeof(STR_SHIFT_RIGHT) / sizeof(*STR_SHIFT_RIGHT) - + sizeof(*STR_SHIFT_RIGHT); static const char STR_EQUAL[] = "__equal__"; static const size_t STR_EQUAL_SIZE = sizeof(STR_EQUAL) / sizeof(*STR_EQUAL) - sizeof(*STR_EQUAL); @@ -4916,6 +4989,12 @@ bool setAllTypes(AstTree *tree, AstTreeSetTypesHelper helper, case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: return setTypesOperatorInfix(tree, helper, STR_BITWISE_OR, STR_BITWISE_OR_SIZE); + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + return setTypesOperatorInfix(tree, helper, STR_SHIFT_LEFT, + STR_SHIFT_LEFT_SIZE); + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: + return setTypesOperatorInfix(tree, helper, STR_SHIFT_RIGHT, + STR_SHIFT_RIGHT_SIZE); case AST_TREE_TOKEN_OPERATOR_POINTER: return setTypesOperatorPointer(tree, helper); case AST_TREE_TOKEN_OPERATOR_ADDRESS: @@ -4961,6 +5040,8 @@ bool setAllTypes(AstTree *tree, AstTreeSetTypesHelper helper, case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: return setTypesBuiltinBinary(tree, helper, functionCall); case AST_TREE_TOKEN_BUILTIN_EQUAL: case AST_TREE_TOKEN_BUILTIN_NOT_EQUAL: @@ -6695,6 +6776,8 @@ bool setTypesBuiltinUnary(AstTree *tree, AstTreeSetTypesHelper helper, case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: case AST_TREE_TOKEN_KEYWORD_CONTINUE: @@ -6750,6 +6833,8 @@ bool setTypesBuiltinUnary(AstTree *tree, AstTreeSetTypesHelper helper, case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ARRAY_ACCESS: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_SHAPE_SHIFTER_ELEMENT: @@ -7776,6 +7861,8 @@ size_t getSizeOfType(AstTree *type) { case AST_TREE_TOKEN_BUILTIN_BITWISE_AND: case AST_TREE_TOKEN_BUILTIN_BITWISE_XOR: case AST_TREE_TOKEN_BUILTIN_BITWISE_OR: + case AST_TREE_TOKEN_BUILTIN_SHIFT_LEFT: + case AST_TREE_TOKEN_BUILTIN_SHIFT_RIGHT: case AST_TREE_TOKEN_KEYWORD_RETURN: case AST_TREE_TOKEN_KEYWORD_BREAK: case AST_TREE_TOKEN_KEYWORD_CONTINUE: @@ -7823,6 +7910,8 @@ size_t getSizeOfType(AstTree *type) { case AST_TREE_TOKEN_OPERATOR_BITWISE_AND: case AST_TREE_TOKEN_OPERATOR_BITWISE_XOR: case AST_TREE_TOKEN_OPERATOR_BITWISE_OR: + case AST_TREE_TOKEN_OPERATOR_SHIFT_LEFT: + case AST_TREE_TOKEN_OPERATOR_SHIFT_RIGHT: case AST_TREE_TOKEN_OPERATOR_ARRAY_ACCESS: case AST_TREE_TOKEN_SCOPE: case AST_TREE_TOKEN_NONE: -- cgit v1.2.3