src/HOL/MicroJava/JVM/JVMListExample.thy
author wenzelm
Mon, 30 Jul 2007 19:46:15 +0200
changeset 24074 40f414b87655
parent 22921 475ff421a6a3
child 24225 348e982c694b
permissions -rw-r--r--
tuned ML declarations;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     1
(*  Title:      HOL/MicroJava/JVM/JVMListExample.thy
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     2
    ID:         $Id$
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     3
    Author:     Stefan Berghofer
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     4
*)
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     5
12973
8040cce614e5 fixed missing label
kleing
parents: 12951
diff changeset
     6
header {* \isaheader{Example for generating executable code from JVM semantics}\label{sec:JVMListExample} *}
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     7
16417
9bc16273c2d4 migrated theory headers to new format
haftmann
parents: 13101
diff changeset
     8
theory JVMListExample imports SystemClasses JVMExec begin
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     9
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    10
consts
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    11
  list_nam :: cnam
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    12
  test_nam :: cnam
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    13
  append_name :: mname
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    14
  makelist_name :: mname
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    15
  val_nam :: vnam
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    16
  next_nam :: vnam
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    17
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    18
constdefs
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    19
  list_name :: cname
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    20
  "list_name == Cname list_nam"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    21
  
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    22
  test_name :: cname
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    23
  "test_name == Cname test_nam"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    24
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    25
  val_name :: vname
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    26
  "val_name == VName val_nam"
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    27
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    28
  next_name :: vname
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    29
  "next_name == VName next_nam"
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    30
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    31
  append_ins :: bytecode
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    32
  "append_ins == 
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    33
       [Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    34
        Getfield next_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    35
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    36
        LitPush Null,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    37
        Ifcmpeq 4,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    38
        Load 1,       
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    39
        Invoke list_name append_name [Class list_name],
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    40
        Return,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    41
        Pop,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    42
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    43
        Load 1,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    44
        Putfield next_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    45
        LitPush Unit,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    46
        Return]"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    47
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    48
  list_class :: "jvm_method class"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    49
  "list_class ==
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    50
    (Object,
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    51
     [(val_name, PrimT Integer), (next_name, Class list_name)],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    52
     [((append_name, [Class list_name]), PrimT Void,
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    53
        (3, 0, append_ins,[(1,2,8,Xcpt NullPointer)]))])"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    54
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    55
  make_list_ins :: bytecode
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    56
  "make_list_ins ==
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    57
       [New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    58
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    59
        Store 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    60
        LitPush (Intg 1),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    61
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    62
        New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    63
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    64
        Store 1,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    65
        LitPush (Intg 2),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    66
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    67
        New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    68
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    69
        Store 2,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    70
        LitPush (Intg 3),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    71
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    72
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    73
        Load 1,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    74
        Invoke list_name append_name [Class list_name],
13101
kleing
parents: 13091
diff changeset
    75
        Pop,
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    76
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    77
        Load 2,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    78
        Invoke list_name append_name [Class list_name],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    79
        Return]"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    80
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    81
  test_class :: "jvm_method class"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    82
  "test_class ==
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    83
    (Object, [],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    84
     [((makelist_name, []), PrimT Void, (3, 2, make_list_ins,[]))])"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    85
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    86
  E :: jvm_prog
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    87
  "E == SystemClasses @ [(list_name, list_class), (test_name, test_class)]"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    88
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    89
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    90
types_code
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    91
  cnam ("string")
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    92
  vnam ("string")
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    93
  mname ("string")
12522
69971d68fe03 fixed JVMListExample
kleing
parents: 12518
diff changeset
    94
  loc_ ("int")
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    95
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    96
consts_code
16770
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
    97
  "new_Addr" ("\<module>new'_addr {* %x. case x of None => True | Some y => False *}/ {* None *}/ {* Loc *}")
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
    98
attach {*
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
    99
fun new_addr p none loc hp =
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
   100
  let fun nr i = if p (hp (loc i)) then (loc i, none) else nr (i+1);
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
   101
  in nr 0 end;
1f1b1fae30e4 Auxiliary functions to be used in generated code are now defined using "attach".
berghofe
parents: 16644
diff changeset
   102
*}
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   103
18679
cf9f1584431a generated code: raise Match instead of ERROR;
wenzelm
parents: 17145
diff changeset
   104
  "arbitrary" ("(raise Match)")
22921
475ff421a6a3 consts in consts_code Isar commands are now referred to by usual term syntax
haftmann
parents: 21404
diff changeset
   105
  "arbitrary :: val" ("{* Unit *}")
475ff421a6a3 consts in consts_code Isar commands are now referred to by usual term syntax
haftmann
parents: 21404
diff changeset
   106
  "arbitrary :: cname" ("{* Object *}")
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   107
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
   108
  "list_nam" ("\"list\"")
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
   109
  "test_nam" ("\"test\"")
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   110
  "append_name" ("\"append\"")
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   111
  "makelist_name" ("\"makelist\"")
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   112
  "val_nam" ("\"val\"")
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   113
  "next_nam" ("\"next\"")
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   114
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   115
code_type cnam and vnam and mname and loc_
21113
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   116
  (SML "string" and "string" and "string" and "IntInf.int")
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   117
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   118
instance cnam :: eq
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   119
  and cname :: eq
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   120
  and vname :: eq
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   121
  and mname :: eq
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   122
  and ty :: eq
21063
3c5074f028c8 slight cleanup
haftmann
parents: 20971
diff changeset
   123
  and val :: eq
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   124
  and instr :: eq ..
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   125
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   126
definition
21404
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   127
  arbitrary_val :: val where
21063
3c5074f028c8 slight cleanup
haftmann
parents: 20971
diff changeset
   128
  [symmetric, code inline]: "arbitrary_val = arbitrary"
21404
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   129
definition
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   130
  arbitrary_cname :: cname where
21063
3c5074f028c8 slight cleanup
haftmann
parents: 20971
diff changeset
   131
  [symmetric, code inline]: "arbitrary_cname = arbitrary"
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   132
21404
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   133
definition "unit' = Unit"
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   134
definition "object' = Object"
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   135
21063
3c5074f028c8 slight cleanup
haftmann
parents: 20971
diff changeset
   136
code_axioms
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   137
  arbitrary_val \<equiv> unit'
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   138
  arbitrary_cname \<equiv> object'
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   139
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   140
code_const list_nam and test_nam and append_name and makelist_name and val_nam and next_nam
21113
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   141
  (SML "\"list\"" and "\"test\"" and "\"append\""
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   142
    and "\"makelist\"" and "\"val\"" and "\"next\"")
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   143
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   144
axiomatization
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   145
  incr_loc :: "loc_ \<Rightarrow> loc_"
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   146
  and zero_loc :: "loc_"
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   147
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   148
code_const incr_loc and zero_loc
21113
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   149
  (SML "(op +)/ (_, 1)" and "0")
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   150
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   151
axiomatization
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   152
  test_loc :: "(loc_ \<Rightarrow> bool) \<Rightarrow> (loc_ \<Rightarrow> 'a) \<Rightarrow> loc_ \<Rightarrow> 'a" where
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   153
  "test_loc p v l = (if p l then v l else test_loc p v (incr l))"
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   154
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   155
definition
21404
eb85850d3eb7 more robust syntax for definition/abbreviation/notation;
wenzelm
parents: 21113
diff changeset
   156
  new_addr' :: "(loc \<Rightarrow> (cname \<times> (vname \<times> cname \<Rightarrow> val option)) option) \<Rightarrow> loc \<times> val option" where
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   157
  "new_addr' hp =
21113
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   158
    test_loc (\<lambda>i. hp (Loc i) = None) (\<lambda>i. (Loc i, None)) zero_loc"
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   159
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   160
lemma [code func]:
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   161
  "wf_class = wf_class" ..
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   162
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   163
code_const
21113
5b76e541cc0a adapted to new serializer syntax
haftmann
parents: 21063
diff changeset
   164
  wf_class (SML "(fn `_ => true)")
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   165
21063
3c5074f028c8 slight cleanup
haftmann
parents: 20971
diff changeset
   166
code_axioms
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   167
  new_Addr \<equiv> new_addr'
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   168
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   169
definition
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   170
  "test = exec (E, start_state E test_name makelist_name)"
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   171
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   172
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   173
subsection {* Single step execution *}
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   174
17145
e623e57b0f44 Adapted to new code generator syntax.
berghofe
parents: 16770
diff changeset
   175
code_module JVM
e623e57b0f44 Adapted to new code generator syntax.
berghofe
parents: 16770
diff changeset
   176
contains
13052
3bf41c474a88 canonical start state
kleing
parents: 12973
diff changeset
   177
  test = "exec (E, start_state E test_name makelist_name)"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   178
24074
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   179
ML {*
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   180
JVM.test;
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   181
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   182
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   183
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   184
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   185
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   186
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   187
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   188
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   189
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   190
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   191
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   192
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   193
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   194
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   195
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   196
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   197
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   198
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   199
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   200
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   201
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   202
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   203
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   204
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   205
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   206
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   207
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   208
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   209
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   210
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   211
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   212
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   213
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   214
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   215
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   216
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   217
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   218
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   219
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   220
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   221
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   222
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   223
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   224
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   225
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   226
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   227
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   228
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   229
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   230
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   231
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   232
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   233
JVM.exec (JVM.E, JVM.the it);
40f414b87655 tuned ML declarations;
wenzelm
parents: 22921
diff changeset
   234
*}
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   235
12973
8040cce614e5 fixed missing label
kleing
parents: 12951
diff changeset
   236
end