4
#ifdef YY_END_OF_BUFFER_CHAR
5
#define dvdvm_buffer_state YY_BUFFER_STATE
7
typedef void *dvdvm_buffer_state;
10
extern void dvdvmerror(char *s);
11
extern int dvdvmlex(void);
12
extern dvdvm_buffer_state dvdvm_scan_string(const char *s);
13
extern int dvdvmparse(void);
19
struct vm_statement *param;
20
struct vm_statement *next;
23
extern struct vm_statement *dvd_vm_parsed_cmd;
44
VM_EQ, // EQ .. LT are all in a specific order
58
static inline struct vm_statement *statement_new()
60
struct vm_statement *s=malloc(sizeof(struct vm_statement));
61
memset(s,0,sizeof(struct vm_statement));
65
static inline struct vm_statement *statement_expression(struct vm_statement *v1,int op,struct vm_statement *v2)
67
struct vm_statement *v;
71
while(v->next) v=v->next;
83
static inline struct vm_statement *statement_setop(int reg,int op,struct vm_statement *vp)
85
struct vm_statement *v,*v2;
93
v->param=statement_expression(v2,op,vp);
97
static inline void statement_free(struct vm_statement *s)
99
if( s->s1 ) free(s->s1);
100
if( s->s2 ) free(s->s2);
101
if( s->s3 ) free(s->s3);
102
if( s->s4 ) free(s->s4);
103
if( s->param ) statement_free(s->param);
104
if( s->next ) statement_free(s->next);