]> mj.ucw.cz Git - umpf.git/commitdiff
uh
authorAnicka Bernathova <anicka@anicka.net>
Wed, 2 Jul 2008 13:22:31 +0000 (15:22 +0200)
committerAnicka Bernathova <anicka@anicka.net>
Wed, 2 Jul 2008 13:22:31 +0000 (15:22 +0200)
cond.y

diff --git a/cond.y b/cond.y
index 1a8e16078bbf609bfe13996f26eeeabdf1fcdeae..746dc40fb4cd5543fed1c65469d4df024edf808d 100644 (file)
--- a/cond.y
+++ b/cond.y
@@ -17,6 +17,7 @@ void yyerror (char const *);
 %left EQ
 %left '|' '&' '^'
 %left '!'
+%type <b> boo
 
 %%
 input: /* empty */
@@ -25,15 +26,15 @@ input:      /* empty */
 
 line:  '\n'
        | boo '\n'              { printf("%s\n",$1?"true":"false"); }
+       | error '\n'            { yyerrok; }
 ;
 
-boo:
-       CONST EQ CONST  { $$ = ! strcmp($1, $2); } 
-       | boo EQ boo            { $$ = $1 == $2 } 
-       | boo '|' boo           { $$ = $1 || $2 }
-       | boo '&' boo           { $$ = $1 && $2 }
-       | boo '^' boo           { $$ = ($1 || $2) && !($1 && $2) }
-       | '!' boo               { $$ = ! $1 }
+boo:    CONST EQ CONST         { $$ = ! strcmp($1, $3); } 
+       | boo EQ boo            { $$ = $1 == $3 } 
+       | boo '|' boo           { $$ = $1 || $3 }
+       | boo '&' boo           { $$ = $1 && $3 }
+       | boo '^' boo           { $$ = ($1 || $3) && !($1 && $3) }
+       | '!' boo               { $$ = ! $2 }
 ;
 
 ;