20 lines
730 B
Plaintext
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); }
|
|
;
|