#ifndef ANIMTOOL_EXPR_H_ #define ANIMTOOL_EXPR_H_ #include "op.h" #include "source.h" enum expr_type { EXPR_NUMBER, EXPR_OP, EXPR_TIME, }; struct expr { struct range loc; enum expr_type type; union { double number; struct { enum op_type type; array(struct expr) args; } op; }; }; double expr_eval(struct expr *expr, double time); void expr_free(struct expr *expr); void expr_copy(struct expr *dst, struct expr *src); #endif