#ifndef SYNTAX_H #define SYNTAX_H typedef float num_t; typedef char* atom_t; typedef char* string_t; typedef struct expr_t expr_t; typedef struct binop_t binop_t; struct expr_t { int type; union { atom_t id; num_t num; string_t string; binop_t *binop; }; }; struct binop_t { expr_t *first; expr_t *second; int op; }; #endif /* SYNTAX_H */