diff options
| author | Baitinq <[email protected]> | 2025-08-06 22:27:59 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-08-06 22:27:59 +0200 |
| commit | b5ea64ce5468cb18a95a1c5be18837d8b2726850 (patch) | |
| tree | bb0b0496cb6762c01bfbefb9baff54d35b97b6ab /src/parser.pry | |
| parent | misc: add stage binaries to gitignore (diff) | |
| download | pry-lang-b5ea64ce5468cb18a95a1c5be18837d8b2726850.tar.gz pry-lang-b5ea64ce5468cb18a95a1c5be18837d8b2726850.tar.bz2 pry-lang-b5ea64ce5468cb18a95a1c5be18837d8b2726850.zip | |
Diffstat (limited to '')
| -rw-r--r-- | src/parser.pry | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/src/parser.pry b/src/parser.pry index 4d6b27a..bd2db37 100644 --- a/src/parser.pry +++ b/src/parser.pry @@ -243,7 +243,7 @@ let parser_init = (ts: *token, ts_len: i64, ar: *arena, filename: *i8) => *parse return p; }; -let create_node = (p: *parser, n: Node) => *Node { +let parser_create_node = (p: *parser, n: Node) => *Node { let res = cast(*Node, arena_alloc((*p).arena, sizeof(Node))); *res = n; return res; @@ -303,7 +303,7 @@ let parser_parse_return_statement = (p: *parser) => *Node { r.type = NODE_RETURN_STATEMENT; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; extern parser_parse_type = (*parser) => *Node; @@ -349,7 +349,7 @@ let parser_parse_cast_statement = (p: *parser) => *Node { r.type = NODE_CAST_STATEMENT; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; /* SizeOfStatement ::= "sizeof" LPAREN TYPE RPAREN */ @@ -383,7 +383,7 @@ let parser_parse_sizeof_statement = (p: *parser) => *Node { r.type = NODE_SIZEOF_STATEMENT; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; /* FunctionType ::= LPAREN (Type ("," Type)*)? RPAREN ARROW Type */ @@ -430,7 +430,7 @@ let parser_parse_function_type = (p: *parser) => *Node { r.type = NODE_TYPE_FUNCTION_TYPE; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; /* Type ::= IDENTIFIER | FunctionType */ @@ -453,7 +453,7 @@ let parser_parse_type = (p: *parser) => *Node { r.type = NODE_TYPE_SIMPLE_TYPE; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; if (*to).type == TOKEN_MUL { @@ -464,7 +464,7 @@ let parser_parse_type = (p: *parser) => *Node { r.type = NODE_TYPE_POINTER_TYPE; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; return cast(*Node, null); @@ -509,7 +509,7 @@ let parser_parse_if_statement = (p: *parser) => *Node { r.type = NODE_IF_STATEMENT; r.data = cast(*void, dd); - return create_node(p, r); + return parser_create_node(p, r); }; /* WhileStatement ::= "while" Expression LBRACE Statement* RBRACE */ @@ -551,7 +551,7 @@ let parser_parse_while_statement = (p: *parser) => *Node { r.type = NODE_WHILE_STATEMENT; r.data = cast(*void, dd); - return create_node(p, r); + return parser_create_node(p, r); }; /* ExternDeclaration ::= "extern" IDENTIFIER EQUALS Type */ @@ -583,14 +583,14 @@ let parser_parse_extern_declaration = (p: *parser) => *Node { let dd = cast(*NODE_ASSIGNMENT_STATEMENT_DATA, arena_alloc((*p).arena, sizeof(NODE_ASSIGNMENT_STATEMENT_DATA))); (*dd).is_declaration = false; (*dd).is_dereference = false; - (*dd).lhs = create_node(p, n); + (*dd).lhs = parser_create_node(p, n); (*dd).rhs = typ; let r = Node{}; r.type = NODE_ASSIGNMENT_STATEMENT; r.data = cast(*void, dd); - return create_node(p, r); + return parser_create_node(p, r); }; /* FunctionParameters ::= IDENTIFIER ":" Type ("," IDENTIFIER ":" Type)* */ @@ -619,7 +619,7 @@ let parser_parse_function_parameters = (p: *parser) => *slice { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_IDENTIFIER; n.data = cast(*void, d); - (*(node_list + cast(**Node, i))) = create_node(p, n); + (*(node_list + cast(**Node, i))) = parser_create_node(p, n); i = i + 1; }; @@ -649,7 +649,7 @@ let parser_parse_type_definition = (p: *parser) => *Node { r.type = NODE_TYPE_SIMPLE_TYPE; r.data = cast(*void, d); - return create_node(p, r); + return parser_create_node(p, r); }; /* StructDefinition ::= "struct" LBRACE StructFields? RBRACE */ @@ -683,7 +683,7 @@ let parser_parse_struct_definition = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_IDENTIFIER; n.data = cast(*void, d); - return create_node(ip, n); + return parser_create_node(ip, n); }); if field == cast(*Node, null) { break; @@ -705,7 +705,7 @@ let parser_parse_struct_definition = (p: *parser) => *Node { let n = Node{}; n.type = NODE_TYPE_STRUCT_TYPE; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; /* FunctionDefinition ::= LPAREN FunctionParameters? RPAREN ARROW IDENTIFIER LBRACE Statement* ReturnStatement SEMICOLON RBRACE */ @@ -767,7 +767,7 @@ let parser_parse_function_definition = (p: *parser) => *Node { n.type = NODE_FUNCTION_DEFINITION; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; /* StructInstantiation ::= IDENTIFIER LBRACE RBRACE */ @@ -791,7 +791,7 @@ let parser_parse_struct_instanciation = (p: *parser) => *Node { n.type = NODE_STRUCT_INSTANCIATION; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; extern parser_parse_primary_expression = (*parser) => *Node; @@ -818,7 +818,7 @@ let parser_parse_field_access = (p: *parser) => *Node { n.type = NODE_FIELD_ACCESS; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; /* PrimaryExpression ::= NULL | NUMBER | BOOLEAN | CHAR | STRING | IDENTIFIER | FunctionDefinition | StructDefinition | StructInstantiation | FieldAccess | LPAREN Expression RPAREN */ @@ -860,7 +860,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { if (*tok).type == TOKEN_NULL { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_NULL; - return create_node(p, n); + return parser_create_node(p, n); }; if (*tok).type == TOKEN_IDENTIFIER { @@ -870,7 +870,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_IDENTIFIER; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; if (*tok).type == TOKEN_NUMBER { @@ -879,7 +879,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_NUMBER; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; if (*tok).type == TOKEN_BOOLEAN { @@ -888,7 +888,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_BOOLEAN; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; if (*tok).type == TOKEN_CHAR { @@ -897,7 +897,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_CHAR; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; if (*tok).type == TOKEN_STRING { @@ -906,7 +906,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_STRING; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; return cast(*Node, null); @@ -929,7 +929,7 @@ let parser_parse_equality_expression = (p: *parser) => *Node { return cast(*Node, null); }; let n = Node{}; - return create_node(ip, n); + return parser_create_node(ip, n); }); if ex != cast(*Node, null) { typ = EQUALITY_EXPRESSION_TYPE_EQ; @@ -944,7 +944,7 @@ let parser_parse_equality_expression = (p: *parser) => *Node { return cast(*Node, null); }; let n = Node{}; - return create_node(ip, n); + return parser_create_node(ip, n); }); if (ex != cast(*Node, null)) { typ = EQUALITY_EXPRESSION_TYPE_NE; @@ -960,7 +960,7 @@ let parser_parse_equality_expression = (p: *parser) => *Node { return cast(*Node, null); }; let n = Node{}; - return create_node(ip, n); + return parser_create_node(ip, n); }); if (ex != cast(*Node, null)) { typ = EQUALITY_EXPRESSION_TYPE_LE; @@ -976,7 +976,7 @@ let parser_parse_equality_expression = (p: *parser) => *Node { return cast(*Node, null); }; let n = Node{}; - return create_node(ip, n); + return parser_create_node(ip, n); }); if (ex != cast(*Node, null)) { typ = EQUALITY_EXPRESSION_TYPE_GE; @@ -1009,7 +1009,7 @@ let parser_parse_equality_expression = (p: *parser) => *Node { n.type = NODE_EQUALITY_EXPRESSION ; n.data = cast(*void, d); - lhs = create_node(p, n); + lhs = parser_create_node(p, n); }; return lhs; @@ -1062,7 +1062,7 @@ let parser_parse_unary_expression = (p: *parser) => *Node { let new_lhs = Node{}; new_lhs.type = NODE_UNARY_EXPRESSION; new_lhs.data = cast(*void, new_lhs_data); - return create_node(p, new_lhs); + return parser_create_node(p, new_lhs); }; /* MultiplicativeExpression ::= UnaryExpression (("*" | "/" | "%") UnaryExpression)* */ @@ -1099,7 +1099,7 @@ let parser_parse_multiplicative_expression = (p: *parser) => *Node { let new_lhs = Node{}; new_lhs.type = NODE_MULTIPLICATIVE_EXPRESSION; new_lhs.data = cast(*void, new_lhs_data); - lhs = create_node(p, new_lhs); + lhs = parser_create_node(p, new_lhs); }; return lhs; }; @@ -1131,7 +1131,7 @@ let parser_parse_additive_expression = (p: *parser) => *Node { let new_lhs = Node{}; new_lhs.type = NODE_ADDITIVE_EXPRESSION; new_lhs.data = cast(*void, new_lhs_data); - lhs = create_node(p, new_lhs); + lhs = parser_create_node(p, new_lhs); }; return lhs; }; @@ -1163,7 +1163,7 @@ let parser_parse_logical_expression = (p: *parser) => *Node { let new_lhs = Node{}; new_lhs.type = NODE_LOGICAL_EXPRESSION; new_lhs.data = cast(*void, new_lhs_data); - lhs = create_node(p, new_lhs); + lhs = parser_create_node(p, new_lhs); }; return lhs; }; @@ -1207,7 +1207,7 @@ let parse_assignment_statement = (p: *parser) => *Node { let n = Node{}; n.type = NODE_ASSIGNMENT_STATEMENT; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; extern parse = (*parser) => *Node; @@ -1272,7 +1272,7 @@ let parser_parse_import_declaration = (p: *parser) => *Node { let n = Node{}; n.type = NODE_IMPORT_DECLARATION; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; /* FunctionArguments ::= Expression ("," Expression)* */ @@ -1347,7 +1347,7 @@ let parse_function_call_statement = (p: *parser) => *Node { let n = Node{}; n.type = NODE_FUNCTION_CALL_STATEMENT; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; /* Statement ::= (AssignmentStatement | ImportDeclaration | ExternDeclaration | CastStatement | SizeOfStatement | FunctionCallStatement | IfStatement | WhileStatement | ReturnStatement | "break" | "continue") SEMICOLON */ @@ -1433,7 +1433,7 @@ let parser_parse_statement = (p: *parser) => *Node { let n = Node{}; n.type = NODE_BREAK_STATEMENT; - return create_node(ip, n); + return parser_create_node(ip, n); }); if retu != cast(*Node, null) { if parser_accept_token(p, TOKEN_SEMICOLON) == cast(*token, null) { @@ -1449,7 +1449,7 @@ let parser_parse_statement = (p: *parser) => *Node { let n = Node{}; n.type = NODE_CONTINUE_STATEMENT; - return create_node(ip, n); + return parser_create_node(ip, n); }); if retu != cast(*Node, null) { if parser_accept_token(p, TOKEN_SEMICOLON) == cast(*token, null) { @@ -1481,7 +1481,7 @@ let parse_program = (p: *parser) => *Node { let n = Node{}; n.type = NODE_PROGRAM; n.data = cast(*void, d); - return create_node(p, n); + return parser_create_node(p, n); }; let parse = (p: *parser) => *Node { |