19 | LAss vname expr (* local assign *) ("_::=_" [ 90,90]90) |
19 | LAss vname expr (* local assign *) ("_::=_" [ 90,90]90) |
20 | FAcc cname expr vname (* field access *) ("{_}_.._" [10,90,99 ]90) |
20 | FAcc cname expr vname (* field access *) ("{_}_.._" [10,90,99 ]90) |
21 | FAss cname expr vname |
21 | FAss cname expr vname |
22 expr (* field ass. *) ("{_}_.._:=_" [10,90,99,90]90) |
22 expr (* field ass. *) ("{_}_.._:=_" [10,90,99,90]90) |
23 | Call cname expr mname |
23 | Call cname expr mname |
24 (ty list) (expr list) (* method call*) ("{_}_.._'( {_}_')" |
24 "ty list" "expr list" (* method call*) ("{_}_.._'( {_}_')" |
25 [10,90,99,10,10] 90) |
25 [10,90,99,10,10] 90) |
26 |
26 |
27 datatype stmt |
27 datatype stmt |
28 = Skip (* empty statement *) |
28 = Skip (* empty statement *) |
29 | Expr expr (* expression statement *) |
29 | Expr expr (* expression statement *) |
30 | Comp stmt stmt ("_;; _" [61,60]60) |
30 | Comp stmt stmt ("_;; _" [61,60]60) |
31 | Cond expr stmt stmt ("If '(_') _ Else _" [80,79,79]70) |
31 | Cond expr stmt stmt ("If '(_') _ Else _" [80,79,79]70) |
32 | Loop expr stmt ("While '(_') _" [80,79]70) |
32 | Loop expr stmt ("While '(_') _" [80,79]70) |
33 |
33 |
34 end |
34 end |
|
35 |