| author | haftmann | 
| Sun, 28 Aug 2005 10:08:36 +0200 | |
| changeset 17157 | c5fb1fb537c0 | 
| parent 16417 | 9bc16273c2d4 | 
| child 41589 | bbd861837ebc | 
| permissions | -rw-r--r-- | 
| 8011 | 1 | (* Title: HOL/MicroJava/J/Term.thy | 
| 2 | ID: $Id$ | |
| 3 | Author: David von Oheimb | |
| 4 | Copyright 1999 Technische Universitaet Muenchen | |
| 11070 | 5 | *) | 
| 8011 | 6 | |
| 12911 | 7 | header {* \isaheader{Expressions and Statements} *}
 | 
| 8011 | 8 | |
| 16417 | 9 | theory Term imports Value begin | 
| 8011 | 10 | |
| 12517 | 11 | datatype binop = Eq | Add -- "function codes for binary operation" | 
| 9240 | 12 | |
| 8011 | 13 | datatype expr | 
| 12517 | 14 | = NewC cname -- "class instance creation" | 
| 15 | | Cast cname expr -- "type cast" | |
| 16 | | Lit val -- "literal value, also references" | |
| 17 | | BinOp binop expr expr -- "binary operation" | |
| 18 | | LAcc vname -- "local (incl. parameter) access" | |
| 19 |   | LAss vname expr          ("_::=_" [90,90]90)      -- "local assign"
 | |
| 20 |   | FAcc cname expr vname    ("{_}_.._" [10,90,99]90) -- "field access"
 | |
| 10069 | 21 | | FAss cname expr vname | 
| 12517 | 22 |                     expr     ("{_}_.._:=_" [10,90,99,90]90) -- "field ass."
 | 
| 10763 | 23 | | Call cname expr mname | 
| 12517 | 24 |     "ty list" "expr list"    ("{_}_.._'( {_}_')" [10,90,99,10,10] 90) -- "method call" 
 | 
| 10061 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 kleing parents: 
10042diff
changeset | 25 | |
| 10119 | 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 |