Commit 311fd67083
Changed files (3)
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:
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;
src/parser.hpp
@@ -27,7 +27,6 @@ enum NodeType {
NodeTypeFnCall,
NodeTypeExternBlock,
NodeTypeDirective,
- NodeTypeStatementExpression,
NodeTypeStatementReturn,
};
@@ -71,10 +70,6 @@ struct AstNodeBlock {
ZigList<AstNode *> 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;