authorgravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2015-11-25 16:43:08-07:00
committergravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2015-11-25 16:43:16-07:00
log311fd6708398a81ceb17780974715f53c33f09d8
treea04ae009693ff7afa12cb309b991b23cc3a4a019
parent22421447fbaba77d9480e31a69f6b78448ea2b2f

inline AstNodeStatementExpression


3 files changed, 3 insertions(+), 21 deletions(-)

src/codegen.cpp+2-7
......@@ -292,9 +292,6 @@ static void analyze_node(CodeGen *g, AstNode *node) {
292292 analyze_node(g, child);
293293 }
294294 break;
295 case NodeTypeStatementExpression:
296 analyze_node(g, node->data.statement_expression.expression);
297 break;
298295 case NodeTypeStatementReturn:
299296 analyze_node(g, node->data.statement_return.expression);
300297 break;
......@@ -520,10 +517,9 @@ static void gen_block(CodeGen *g, AstNode *block_node) {
520517 LLVMBuildRet(g->builder, value);
521518 break;
522519 }
523 case NodeTypeStatementExpression:
520 case NodeTypeExpression:
524521 {
525 AstNode *expr_node = statement_node->data.statement_expression.expression;
526 gen_expr(g, expr_node);
522 gen_expr(g, statement_node);
527523 break;
528524 }
529525 case NodeTypeRoot:
......@@ -533,7 +529,6 @@ static void gen_block(CodeGen *g, AstNode *block_node) {
533529 case NodeTypeParamDecl:
534530 case NodeTypeType:
535531 case NodeTypeBlock:
536 case NodeTypeExpression:
537532 case NodeTypeFnCall:
538533 case NodeTypeExternBlock:
539534 case NodeTypeDirective:
src/parser.cpp+1-8
......@@ -41,8 +41,6 @@ const char *node_type_str(NodeType node_type) {
4141 return "Type";
4242 case NodeTypeBlock:
4343 return "Block";
44 case NodeTypeStatementExpression:
45 return "StatementExpression";
4644 case NodeTypeStatementReturn:
4745 return "StatementReturn";
4846 case NodeTypeExpression:
......@@ -132,10 +130,6 @@ void ast_print(AstNode *node, int indent) {
132130 fprintf(stderr, "ReturnStatement\n");
133131 ast_print(node->data.statement_return.expression, indent + 2);
134132 break;
135 case NodeTypeStatementExpression:
136 fprintf(stderr, "ExpressionStatement\n");
137 ast_print(node->data.statement_expression.expression, indent + 2);
138 break;
139133 case NodeTypeExternBlock:
140134 {
141135 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_
466460 token->id == TokenIdKeywordUnreachable ||
467461 token->id == TokenIdNumberLiteral)
468462 {
469 AstNode *node = ast_create_node(NodeTypeStatementExpression, token);
470 node->data.statement_expression.expression = ast_parse_expression(pc, token_index, &token_index);
463 AstNode *node = ast_parse_expression(pc, token_index, &token_index);
471464
472465 Token *semicolon = &pc->tokens->at(token_index);
473466 token_index += 1;
src/parser.hpp-6
......@@ -27,7 +27,6 @@ enum NodeType {
2727 NodeTypeFnCall,
2828 NodeTypeExternBlock,
2929 NodeTypeDirective,
30 NodeTypeStatementExpression,
3130 NodeTypeStatementReturn,
3231};
3332
......@@ -71,10 +70,6 @@ struct AstNodeBlock {
7170 ZigList<AstNode *> statements;
7271};
7372
74struct AstNodeStatementExpression {
75 AstNode *expression;
76};
77
7873struct AstNodeStatementReturn {
7974 AstNode *expression;
8075};
......@@ -124,7 +119,6 @@ struct AstNode {
124119 AstNodeType type;
125120 AstNodeParamDecl param_decl;
126121 AstNodeBlock block;
127 AstNodeStatementExpression statement_expression;
128122 AstNodeStatementReturn statement_return;
129123 AstNodeExpression expression;
130124 AstNodeFnCall fn_call;