rename unary expression to prefix op expression
This commit is contained in:
@@ -317,7 +317,7 @@ static void find_declarations(CodeGen *g, AstNode *node) {
|
||||
case NodeTypeAddExpr:
|
||||
case NodeTypeMultExpr:
|
||||
case NodeTypeCastExpr:
|
||||
case NodeTypeUnaryExpr:
|
||||
case NodeTypePrefixOpExpr:
|
||||
case NodeTypePrimaryExpr:
|
||||
case NodeTypeGroupedExpr:
|
||||
zig_unreachable();
|
||||
@@ -543,7 +543,7 @@ static void analyze_node(CodeGen *g, AstNode *node) {
|
||||
case NodeTypeCastExpr:
|
||||
zig_panic("TODO");
|
||||
break;
|
||||
case NodeTypeUnaryExpr:
|
||||
case NodeTypePrefixOpExpr:
|
||||
zig_panic("TODO");
|
||||
break;
|
||||
case NodeTypePrimaryExpr:
|
||||
@@ -744,26 +744,26 @@ static LLVMValueRef gen_primary_expr(CodeGen *g, AstNode *node) {
|
||||
zig_unreachable();
|
||||
}
|
||||
|
||||
static LLVMValueRef gen_unary_expr(CodeGen *g, AstNode *node) {
|
||||
assert(node->type == NodeTypeUnaryExpr);
|
||||
assert(node->data.unary_expr.primary_expr);
|
||||
static LLVMValueRef gen_prefix_op_expr(CodeGen *g, AstNode *node) {
|
||||
assert(node->type == NodeTypePrefixOpExpr);
|
||||
assert(node->data.prefix_op_expr.primary_expr);
|
||||
|
||||
LLVMValueRef expr = gen_expr(g, node->data.unary_expr.primary_expr);
|
||||
LLVMValueRef expr = gen_expr(g, node->data.prefix_op_expr.primary_expr);
|
||||
|
||||
switch (node->data.unary_expr.unary_op) {
|
||||
case UnaryOpNegation:
|
||||
switch (node->data.prefix_op_expr.prefix_op) {
|
||||
case PrefixOpNegation:
|
||||
add_debug_source_node(g, node);
|
||||
return LLVMBuildNeg(g->builder, expr, "");
|
||||
case UnaryOpBoolNot:
|
||||
case PrefixOpBoolNot:
|
||||
{
|
||||
LLVMValueRef zero = LLVMConstNull(LLVMTypeOf(expr));
|
||||
add_debug_source_node(g, node);
|
||||
return LLVMBuildICmp(g->builder, LLVMIntEQ, expr, zero, "");
|
||||
}
|
||||
case UnaryOpBinNot:
|
||||
case PrefixOpBinNot:
|
||||
add_debug_source_node(g, node);
|
||||
return LLVMBuildNot(g->builder, expr, "");
|
||||
case UnaryOpInvalid:
|
||||
case PrefixOpInvalid:
|
||||
zig_unreachable();
|
||||
}
|
||||
|
||||
@@ -772,7 +772,7 @@ static LLVMValueRef gen_unary_expr(CodeGen *g, AstNode *node) {
|
||||
static LLVMValueRef gen_cast_expr(CodeGen *g, AstNode *node) {
|
||||
assert(node->type == NodeTypeCastExpr);
|
||||
|
||||
LLVMValueRef expr = gen_expr(g, node->data.cast_expr.unary_expr);
|
||||
LLVMValueRef expr = gen_expr(g, node->data.cast_expr.prefix_op_expr);
|
||||
|
||||
if (!node->data.cast_expr.type)
|
||||
return expr;
|
||||
@@ -1026,8 +1026,8 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) {
|
||||
return gen_bool_or_expr(g, node);
|
||||
case NodeTypeReturnExpr:
|
||||
return gen_return_expr(g, node);
|
||||
case NodeTypeUnaryExpr:
|
||||
return gen_unary_expr(g, node);
|
||||
case NodeTypePrefixOpExpr:
|
||||
return gen_prefix_op_expr(g, node);
|
||||
case NodeTypeRoot:
|
||||
case NodeTypeRootExportDecl:
|
||||
case NodeTypeFnProto:
|
||||
|
||||
Reference in New Issue
Block a user