src/HOL/MicroJava/J/Term.thy
changeset 11026 a50365d21144
parent 10763 08e1610c1dcb
child 11070 cc421547e744
equal deleted inserted replaced
11025:a70b796d9af8 11026:a50365d21144
     4     Copyright   1999 Technische Universitaet Muenchen
     4     Copyright   1999 Technische Universitaet Muenchen
     5 
     5 
     6 Java expressions and statements
     6 Java expressions and statements
     7 *)
     7 *)
     8 
     8 
     9 Term = Value +
     9 theory Term = Value:
    10 
    10 
    11 datatype binop = Eq | Add    (* function codes for binary operation *)
    11 datatype binop = Eq | Add    (* function codes for binary operation *)
    12 
    12 
    13 datatype expr
    13 datatype expr
    14   = NewC cname               (* class instance creation *)
    14   = NewC cname               (* class instance creation *)
    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