#ifndef EXPRESSION_H #define EXPRESSION_H #include typedef enum { OPERATOR_ADD = 0, OPERATOR_SUBTRACT = 1, OPERATOR_MULTIPLY = 2, OPERATOR_DIVIDE = 3, } operator_t; struct _expression_t; typedef struct { operator_t operator; const struct _expression_t *operands[2]; } application_t; typedef struct _expression_t { bool is_number; union { application_t application; int number; }; } expression_t; #endif