diff options
Diffstat (limited to 'grammar/grammar.y')
-rw-r--r-- | grammar/grammar.y | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/grammar/grammar.y b/grammar/grammar.y index 65a6e8dc..a9f179e0 100644 --- a/grammar/grammar.y +++ b/grammar/grammar.y @@ -148,20 +148,15 @@ script: stmt { $$ = $1; } stmt: actlst { $$ = $1; } | STOP { $$ = cnfstmtNew(S_STOP); } | IF expr THEN block { $$ = cnfstmtNew(S_IF); - $$->d.cond.expr = $2; - $$->d.cond.t_then = $4; - $$->d.cond.t_else = NULL; } + $$->d.s_if.expr = $2; + $$->d.s_if.t_then = $4; + $$->d.s_if.t_else = NULL; } | IF expr THEN block ELSE block { $$ = cnfstmtNew(S_IF); - $$->d.cond.expr = $2; - $$->d.cond.t_then = $4; - $$->d.cond.t_else = $6; } - | PRIFILT block { $$ = cnfstmtNew(S_PRIFILT); - $$->printable = $1; - $$->d.cond.expr = $1; - $$->d.cond.t_then = $2; } - | PROPFILT block { $$ = cnfstmtNew(S_PROPFILT); - $$->d.cond.expr = $1; - $$->d.cond.t_then = $2; } + $$->d.s_if.expr = $2; + $$->d.s_if.t_then = $4; + $$->d.s_if.t_else = $6; } + | PRIFILT block { $$ = cnfstmtNewPRIFILT($1, $2); } + | PROPFILT block { $$ = cnfstmtNewPROPFILT($1, $2); } block: stmt { $$ = $1; } | '{' script '}' { $$ = $2; } actlst: s_act { $$ = $1; } @@ -170,7 +165,7 @@ s_act: BEGIN_ACTION nvlst ENDOBJ { $$ = cnfstmtNew(S_ACT); $$->printable="action()"; dbgprintf("RRRR: action object\n"); } | LEGACY_ACTION { $$ = cnfstmtNew(S_ACT); - $$->printable = $1; + $$->printable = (uchar*) $1; dbgprintf("RRRR: legacy action\n"); } expr: expr AND expr { $$ = cnfexprNew(AND, $1, $3); } | expr OR expr { $$ = cnfexprNew(OR, $1, $3); } |