| author | haftmann | 
| Wed, 13 May 2009 18:41:36 +0200 | |
| changeset 31133 | a9f728dc5c8e | 
| 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: 
10042 
diff
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: 
10042 
diff
changeset
 | 
29  | 
  | Comp stmt stmt       ("_;; _"             [61,60]60)
 | 
| 
 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 
kleing 
parents: 
10042 
diff
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: 
10042 
diff
changeset
 | 
31  | 
  | Loop expr stmt       ("While '(_') _"     [80,79]70)
 | 
| 
 
fe82134773dc
added HTML syntax; added spaces in normal syntax for better documents
 
kleing 
parents: 
10042 
diff
changeset
 | 
32  | 
|
| 8011 | 33  | 
end  | 
| 
11026
 
a50365d21144
converted to Isar, simplifying recursion on class hierarchy
 
oheimb 
parents: 
10763 
diff
changeset
 | 
34  |