Pinky/src/model.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 } };
}