37 lines
918 B
C
37 lines
918 B
C
#include "model.h"
|
|
|
|
struct expression
|
|
expression_create_integer (int value)
|
|
{
|
|
return (struct expression){ .type = EXPR_INT, .integer = value };
|
|
}
|
|
|
|
struct expression
|
|
expression_create_floating (int value)
|
|
{
|
|
return (struct expression){ .type = EXPR_FLOAT, .floating = value };
|
|
}
|
|
|
|
struct expression
|
|
expression_create_binop (struct token *op, struct expression *left,
|
|
struct expression *right)
|
|
{
|
|
return (struct expression){ .type = EXPR_BINOP,
|
|
.binop
|
|
= { .op = op, .left = left, .right = right } };
|
|
}
|
|
|
|
struct expression
|
|
expression_create_unop (struct token *op, struct expression *operand)
|
|
{
|
|
return (struct expression){ .type = EXPR_UNOP,
|
|
.unop = { .op = op, .operand = operand } };
|
|
}
|
|
|
|
struct expression
|
|
expression_create_grouping (struct expression *value)
|
|
{
|
|
return (struct expression){ .type = EXPR_GROUP,
|
|
.grouping = { .value = value } };
|
|
}
|