initial
[prop.git] / prop-src / T1.pcc
blob6f46a165c7fba229220a8b0e4648b0b8206acded
1 datatype Exp = INT int        => _
2              | ADD (Exp, Exp) => _ "+" _
3              | SUB (Exp, Exp) => _ "-" _
4              | MUL (Exp, Exp) => _ "*" _ 
5              | DIV (Exp, Exp) => _ "/" _ 
6              ;
8 instantiate datatype Exp;
10 attributegrammar class Foo 
14 attributegrammar Foo 
17 left: 3 '+' '-';
18 left: 2 '*' '/';
20 exp { value : int }: 
21      '(' exp ')'        { $$.value = $2.value; }
22    | exp '+' exp        { $$.value = $1.value + $3.value; }
23    | exp '-' exp        { $$.value = $1.value - $3.value; }
24    | exp '*' exp        { $$.value = $1.value * $3.value; }
25    | exp '/' exp        { $$.value = $1.value / $3.value; }
26    ;
30 int main()
32    //Exp e = `?x+?y`;