mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
inline AstNodeStatementExpression
This commit is contained in:
parent
22421447fb
commit
311fd67083
3 changed files with 3 additions and 21 deletions
|
|
@ -292,9 +292,6 @@ static void analyze_node(CodeGen *g, AstNode *node) {
|
||||||
analyze_node(g, child);
|
analyze_node(g, child);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NodeTypeStatementExpression:
|
|
||||||
analyze_node(g, node->data.statement_expression.expression);
|
|
||||||
break;
|
|
||||||
case NodeTypeStatementReturn:
|
case NodeTypeStatementReturn:
|
||||||
analyze_node(g, node->data.statement_return.expression);
|
analyze_node(g, node->data.statement_return.expression);
|
||||||
break;
|
break;
|
||||||
|
|
@ -520,10 +517,9 @@ static void gen_block(CodeGen *g, AstNode *block_node) {
|
||||||
LLVMBuildRet(g->builder, value);
|
LLVMBuildRet(g->builder, value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NodeTypeStatementExpression:
|
case NodeTypeExpression:
|
||||||
{
|
{
|
||||||
AstNode *expr_node = statement_node->data.statement_expression.expression;
|
gen_expr(g, statement_node);
|
||||||
gen_expr(g, expr_node);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NodeTypeRoot:
|
case NodeTypeRoot:
|
||||||
|
|
@ -533,7 +529,6 @@ static void gen_block(CodeGen *g, AstNode *block_node) {
|
||||||
case NodeTypeParamDecl:
|
case NodeTypeParamDecl:
|
||||||
case NodeTypeType:
|
case NodeTypeType:
|
||||||
case NodeTypeBlock:
|
case NodeTypeBlock:
|
||||||
case NodeTypeExpression:
|
|
||||||
case NodeTypeFnCall:
|
case NodeTypeFnCall:
|
||||||
case NodeTypeExternBlock:
|
case NodeTypeExternBlock:
|
||||||
case NodeTypeDirective:
|
case NodeTypeDirective:
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,6 @@ const char *node_type_str(NodeType node_type) {
|
||||||
return "Type";
|
return "Type";
|
||||||
case NodeTypeBlock:
|
case NodeTypeBlock:
|
||||||
return "Block";
|
return "Block";
|
||||||
case NodeTypeStatementExpression:
|
|
||||||
return "StatementExpression";
|
|
||||||
case NodeTypeStatementReturn:
|
case NodeTypeStatementReturn:
|
||||||
return "StatementReturn";
|
return "StatementReturn";
|
||||||
case NodeTypeExpression:
|
case NodeTypeExpression:
|
||||||
|
|
@ -132,10 +130,6 @@ void ast_print(AstNode *node, int indent) {
|
||||||
fprintf(stderr, "ReturnStatement\n");
|
fprintf(stderr, "ReturnStatement\n");
|
||||||
ast_print(node->data.statement_return.expression, indent + 2);
|
ast_print(node->data.statement_return.expression, indent + 2);
|
||||||
break;
|
break;
|
||||||
case NodeTypeStatementExpression:
|
|
||||||
fprintf(stderr, "ExpressionStatement\n");
|
|
||||||
ast_print(node->data.statement_expression.expression, indent + 2);
|
|
||||||
break;
|
|
||||||
case NodeTypeExternBlock:
|
case NodeTypeExternBlock:
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s\n", node_type_str(node->type));
|
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 == TokenIdKeywordUnreachable ||
|
||||||
token->id == TokenIdNumberLiteral)
|
token->id == TokenIdNumberLiteral)
|
||||||
{
|
{
|
||||||
AstNode *node = ast_create_node(NodeTypeStatementExpression, token);
|
AstNode *node = ast_parse_expression(pc, token_index, &token_index);
|
||||||
node->data.statement_expression.expression = ast_parse_expression(pc, token_index, &token_index);
|
|
||||||
|
|
||||||
Token *semicolon = &pc->tokens->at(token_index);
|
Token *semicolon = &pc->tokens->at(token_index);
|
||||||
token_index += 1;
|
token_index += 1;
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ enum NodeType {
|
||||||
NodeTypeFnCall,
|
NodeTypeFnCall,
|
||||||
NodeTypeExternBlock,
|
NodeTypeExternBlock,
|
||||||
NodeTypeDirective,
|
NodeTypeDirective,
|
||||||
NodeTypeStatementExpression,
|
|
||||||
NodeTypeStatementReturn,
|
NodeTypeStatementReturn,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -71,10 +70,6 @@ struct AstNodeBlock {
|
||||||
ZigList<AstNode *> statements;
|
ZigList<AstNode *> statements;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AstNodeStatementExpression {
|
|
||||||
AstNode *expression;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct AstNodeStatementReturn {
|
struct AstNodeStatementReturn {
|
||||||
AstNode *expression;
|
AstNode *expression;
|
||||||
};
|
};
|
||||||
|
|
@ -124,7 +119,6 @@ struct AstNode {
|
||||||
AstNodeType type;
|
AstNodeType type;
|
||||||
AstNodeParamDecl param_decl;
|
AstNodeParamDecl param_decl;
|
||||||
AstNodeBlock block;
|
AstNodeBlock block;
|
||||||
AstNodeStatementExpression statement_expression;
|
|
||||||
AstNodeStatementReturn statement_return;
|
AstNodeStatementReturn statement_return;
|
||||||
AstNodeExpression expression;
|
AstNodeExpression expression;
|
||||||
AstNodeFnCall fn_call;
|
AstNodeFnCall fn_call;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue