30 lines
705 B
Plaintext
30 lines
705 B
Plaintext
%parser
|
|
%{
|
|
public class List : SYMBOL {
|
|
public int MyField = 17;
|
|
public List(Parser yyp):base(yyp) {}
|
|
}
|
|
%}
|
|
%symbol Factor {
|
|
public int val;
|
|
}
|
|
%symbol Expression : List {
|
|
public int val;
|
|
public Expression ex;
|
|
public Factor fa;
|
|
public Expression(Expression e,Factor f) { ex=e; fa=f; }
|
|
}
|
|
Prog : Expression '\n' ;
|
|
Expression
|
|
: Expression '*' Factor
|
|
| Factor
|
|
;
|
|
Factor
|
|
: Variable:a { val = a.Value; }
|
|
| Int:a { val = a; }
|
|
| '(' Expression:a ')' { val = a.val; }
|
|
| error:e1 { System.Console.WriteLine("Factor expected - "+e1.Pos); val = 0; }
|
|
| '(' Expression:a error:e2 { System.Console.WriteLine(") expected - "+e2.Pos); val = a.val; }
|
|
;
|
|
|