From 311fd6708398a81ceb17780974715f53c33f09d8 Mon Sep 17 00:00:00 2001 From: Josh Wolfe Date: Wed, 25 Nov 2015 16:43:08 -0700 Subject: [PATCH] inline AstNodeStatementExpression --- src/codegen.cpp | 9 ++------- src/parser.cpp | 9 +-------- src/parser.hpp | 6 ------ 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/codegen.cpp b/src/codegen.cpp index 0c8613445c..18b14814d9 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -292,9 +292,6 @@ static void analyze_node(CodeGen *g, AstNode *node) { analyze_node(g, child); } break; - case NodeTypeStatementExpression: - analyze_node(g, node->data.statement_expression.expression); - break; case NodeTypeStatementReturn: analyze_node(g, node->data.statement_return.expression); break; @@ -520,10 +517,9 @@ static void gen_block(CodeGen *g, AstNode *block_node) { LLVMBuildRet(g->builder, value); break; } - case NodeTypeStatementExpression: + case NodeTypeExpression: { - AstNode *expr_node = statement_node->data.statement_expression.expression; - gen_expr(g, expr_node); + gen_expr(g, statement_node); break; } case NodeTypeRoot: @@ -533,7 +529,6 @@ static void gen_block(CodeGen *g, AstNode *block_node) { case NodeTypeParamDecl: case NodeTypeType: case NodeTypeBlock: - case NodeTypeExpression: case NodeTypeFnCall: case NodeTypeExternBlock: case NodeTypeDirective: diff --git a/src/parser.cpp b/src/parser.cpp index b779f19f5c..96dbb7ccd1 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -41,8 +41,6 @@ const char *node_type_str(NodeType node_type) { return "Type"; case NodeTypeBlock: return "Block"; - case NodeTypeStatementExpression: - return "StatementExpression"; case NodeTypeStatementReturn: return "StatementReturn"; case NodeTypeExpression: @@ -132,10 +130,6 @@ void ast_print(AstNode *node, int indent) { fprintf(stderr, "ReturnStatement\n"); ast_print(node->data.statement_return.expression, indent + 2); break; - case NodeTypeStatementExpression: - fprintf(stderr, "ExpressionStatement\n"); - ast_print(node->data.statement_expression.expression, indent + 2); - break; case NodeTypeExternBlock: { fprintf(stderr, "%s\n", node_type_str(node->type)); @@ -466,8 +460,7 @@ static AstNode *ast_parse_statement(ParseContext *pc, int token_index, int *new_ token->id == TokenIdKeywordUnreachable || token->id == TokenIdNumberLiteral) { - AstNode *node = ast_create_node(NodeTypeStatementExpression, token); - node->data.statement_expression.expression = ast_parse_expression(pc, token_index, &token_index); + AstNode *node = ast_parse_expression(pc, token_index, &token_index); Token *semicolon = &pc->tokens->at(token_index); token_index += 1; diff --git a/src/parser.hpp b/src/parser.hpp index daa9251209..319c444f2e 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -27,7 +27,6 @@ enum NodeType { NodeTypeFnCall, NodeTypeExternBlock, NodeTypeDirective, - NodeTypeStatementExpression, NodeTypeStatementReturn, }; @@ -71,10 +70,6 @@ struct AstNodeBlock { ZigList statements; }; -struct AstNodeStatementExpression { - AstNode *expression; -}; - struct AstNodeStatementReturn { AstNode *expression; }; @@ -124,7 +119,6 @@ struct AstNode { AstNodeType type; AstNodeParamDecl param_decl; AstNodeBlock block; - AstNodeStatementExpression statement_expression; AstNodeStatementReturn statement_return; AstNodeExpression expression; AstNodeFnCall fn_call;