Parsing expressions
This commit is contained in:
@@ -40,6 +40,7 @@ typedef enum Expr_Kind{
|
||||
EK_None,
|
||||
EK_Int,
|
||||
EK_String,
|
||||
EK_Identifier,
|
||||
EK_Unary,
|
||||
EK_Binary,
|
||||
EK_Ternary,
|
||||
@@ -126,6 +127,14 @@ expr_str(Arena *p, Token *token){
|
||||
return expr;
|
||||
}
|
||||
|
||||
function Expr *
|
||||
expr_name(Arena *p, Token *token){
|
||||
assert(token->kind == TK_Identifier);
|
||||
Expr *expr = expr_new(p, EK_Identifier, token);
|
||||
expr->intern_val = token->intern_val;
|
||||
return expr;
|
||||
}
|
||||
|
||||
function Expr *
|
||||
expr_unary(Arena *p, Token *op, Expr *exp){
|
||||
Expr *expr = expr_new(p, EK_Unary, op);
|
||||
|
||||
Reference in New Issue
Block a user