Files

20 lines
730 B
Plaintext

%parser 37.lexer
%symbol E { public string str; }
%left '+' '-'
%left '*' '/'
%right '^'
%nonassoc '='
%after '&'
%before '-'
E : ID:x { str = x.yytext; }
| '-' E:e { str = string.Format("(-{0})",e.str); }
| E:e '&' { str = string.Format("({0}&)",e.str); }
| E:a '+' E:b { str = string.Format("({0}+{1})",a.str,b.str); }
| E:a '-' E:b { str = string.Format("({0}-{1})",a.str,b.str); }
| E:a '*' E:b { str = string.Format("({0}*{1})",a.str,b.str); }
| E:a '/' E:b { str = string.Format("({0}/{1})",a.str,b.str); }
| E:a '^' E:b { str = string.Format("({0}^{1})",a.str,b.str); }
| E:a '=' E:b { str = string.Format("({0}={1})",a.str,b.str); }
| '(' E:e ')' { str = string.Format("({0})",e.str); }
;