| author | Andreas Lochbihler | 
| Wed, 11 Feb 2015 15:03:21 +0100 | |
| changeset 59523 | 860fb1c65553 | 
| parent 58886 | 8a6cac7c7247 | 
| child 61361 | 8b5f00202e1a | 
| permissions | -rw-r--r-- | 
| 8011 | 1 | (* Title: HOL/MicroJava/J/Term.thy | 
| 41589 | 2 | Author: David von Oheimb, Technische Universitaet Muenchen | 
| 11070 | 3 | *) | 
| 8011 | 4 | |
| 58886 | 5 | section {* Expressions and Statements *}
 | 
| 8011 | 6 | |
| 16417 | 7 | theory Term imports Value begin | 
| 8011 | 8 | |
| 58310 | 9 | datatype binop = Eq | Add -- "function codes for binary operation" | 
| 9240 | 10 | |
| 58310 | 11 | datatype expr | 
| 12517 | 12 | = NewC cname -- "class instance creation" | 
| 13 | | Cast cname expr -- "type cast" | |
| 14 | | Lit val -- "literal value, also references" | |
| 15 | | BinOp binop expr expr -- "binary operation" | |
| 16 | | LAcc vname -- "local (incl. parameter) access" | |
| 17 |   | LAss vname expr          ("_::=_" [90,90]90)      -- "local assign"
 | |
| 18 |   | FAcc cname expr vname    ("{_}_.._" [10,90,99]90) -- "field access"
 | |
| 10069 | 19 | | FAss cname expr vname | 
| 12517 | 20 |                     expr     ("{_}_.._:=_" [10,90,99,90]90) -- "field ass."
 | 
| 10763 | 21 | | Call cname expr mname | 
| 58263 | 22 |     "ty list" "expr list"    ("{_}_.._'( {_}_')" [10,90,99,10,10] 90) -- "method call"
 | 
| 23 | ||
| 24 | datatype_compat expr | |
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 25 | |
| 58310 | 26 | datatype stmt | 
| 12517 | 27 | = Skip -- "empty statement" | 
| 28 | | Expr expr -- "expression statement" | |
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 29 |   | Comp stmt stmt       ("_;; _"             [61,60]60)
 | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 30 |   | Cond expr stmt stmt  ("If '(_') _ Else _" [80,79,79]70)
 | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 31 |   | Loop expr stmt       ("While '(_') _"     [80,79]70)
 | 
| 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 32 | |
| 8011 | 33 | end | 
| 11026 
a50365d21144
converted to Isar, simplifying recursion on class hierarchy
 oheimb parents: 
10763diff
changeset | 34 |