| author | wenzelm |
| Mon, 13 May 2013 13:23:13 +0200 | |
| changeset 51960 | 61ac1efe02c3 |
| parent 41589 | bbd861837ebc |
| child 58249 | 180f1b3508ed |
| 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 |
|
| 12911 | 5 |
header {* \isaheader{Expressions and Statements} *}
|
| 8011 | 6 |
|
| 16417 | 7 |
theory Term imports Value begin |
| 8011 | 8 |
|
| 12517 | 9 |
datatype binop = Eq | Add -- "function codes for binary operation" |
| 9240 | 10 |
|
| 8011 | 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 |
| 12517 | 22 |
"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:
10042
diff
changeset
|
23 |
|
| 10119 | 24 |
datatype stmt |
| 12517 | 25 |
= Skip -- "empty statement" |
26 |
| Expr expr -- "expression statement" |
|
|
10061
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
kleing
parents:
10042
diff
changeset
|
27 |
| Comp stmt stmt ("_;; _" [61,60]60)
|
|
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
kleing
parents:
10042
diff
changeset
|
28 |
| Cond expr stmt stmt ("If '(_') _ Else _" [80,79,79]70)
|
|
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
kleing
parents:
10042
diff
changeset
|
29 |
| Loop expr stmt ("While '(_') _" [80,79]70)
|
|
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
kleing
parents:
10042
diff
changeset
|
30 |
|
| 8011 | 31 |
end |
|
11026
a50365d21144
converted to Isar, simplifying recursion on class hierarchy
oheimb
parents:
10763
diff
changeset
|
32 |