src/HOL/MicroJava/JVM/JVMListExample.thy
author huffman
Fri, 26 Aug 2011 08:12:38 -0700
changeset 44532 a2e9b39df938
parent 44035 322d1657c40c
child 45231 d85a2fdc586c
permissions -rw-r--r--
add lemma sequentially_imp_eventually_within; rename LIMSEQ_SEQ_conv2_lemma to sequentially_imp_eventually_at;
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
    Author:     Stefan Berghofer
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     3
*)
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     4
12973
8040cce614e5 fixed missing label
kleing
parents: 12951
diff changeset
     5
header {* \isaheader{Example for generating executable code from JVM semantics}\label{sec:JVMListExample} *}
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
     6
32356
e11cd88e6ade temporary adjustment to dubious state of eta expansion in recfun_codegen
haftmann
parents: 28524
diff changeset
     7
theory JVMListExample
e11cd88e6ade temporary adjustment to dubious state of eta expansion in recfun_codegen
haftmann
parents: 28524
diff changeset
     8
imports "../J/SystemClasses" JVMExec
e11cd88e6ade temporary adjustment to dubious state of eta expansion in recfun_codegen
haftmann
parents: 28524
diff changeset
     9
begin
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    10
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    11
text {*
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    12
  Since the types @{typ cnam}, @{text vnam}, and @{text mname} are 
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    13
  anonymous, we describe distinctness of names in the example by axioms:
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    14
*}
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    15
axiomatization list_nam test_nam :: cnam
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    16
where distinct_classes: "list_nam \<noteq> test_nam"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    17
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    18
axiomatization append_name makelist_name :: mname
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    19
where distinct_methods: "append_name \<noteq> makelist_name"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    20
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    21
axiomatization val_nam next_nam :: vnam
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    22
where distinct_fields: "val_nam \<noteq> next_nam"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    23
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    24
axioms nat_to_loc'_inject: "nat_to_loc' l = nat_to_loc' l' \<longleftrightarrow> l = l'"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    25
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    26
definition list_name :: cname where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    27
  "list_name == Cname list_nam"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    28
  
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    29
definition test_name :: cname where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    30
  "test_name == Cname test_nam"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    31
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    32
definition val_name :: vname where
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    33
  "val_name == VName val_nam"
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    34
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    35
definition next_name :: vname where
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    36
  "next_name == VName next_nam"
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    37
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    38
definition append_ins :: bytecode where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    39
  "append_ins == 
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    40
       [Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    41
        Getfield next_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    42
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    43
        LitPush Null,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    44
        Ifcmpeq 4,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    45
        Load 1,       
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    46
        Invoke list_name append_name [Class list_name],
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    47
        Return,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    48
        Pop,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    49
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    50
        Load 1,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    51
        Putfield next_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    52
        LitPush Unit,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    53
        Return]"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    54
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    55
definition list_class :: "jvm_method class" where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    56
  "list_class ==
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    57
    (Object,
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    58
     [(val_name, PrimT Integer), (next_name, Class list_name)],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    59
     [((append_name, [Class list_name]), PrimT Void,
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    60
        (3, 0, append_ins,[(1,2,8,Xcpt NullPointer)]))])"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    61
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    62
definition make_list_ins :: bytecode where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    63
  "make_list_ins ==
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    64
       [New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    65
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    66
        Store 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    67
        LitPush (Intg 1),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    68
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    69
        New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    70
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    71
        Store 1,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    72
        LitPush (Intg 2),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    73
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    74
        New list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    75
        Dup,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    76
        Store 2,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    77
        LitPush (Intg 3),
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    78
        Putfield val_name list_name,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    79
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    80
        Load 1,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    81
        Invoke list_name append_name [Class list_name],
13101
kleing
parents: 13091
diff changeset
    82
        Pop,
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    83
        Load 0,
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    84
        Load 2,
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    85
        Invoke list_name append_name [Class list_name],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    86
        Return]"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    87
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    88
definition test_class :: "jvm_method class" where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    89
  "test_class ==
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    90
    (Object, [],
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    91
     [((makelist_name, []), PrimT Void, (3, 2, make_list_ins,[]))])"
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
    92
35416
d8d7d1b785af replaced a couple of constsdefs by definitions (also some old primrecs by modern ones)
haftmann
parents: 32356
diff changeset
    93
definition E :: jvm_prog where
12951
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    94
  "E == SystemClasses @ [(list_name, list_class), (test_name, test_class)]"
a9fdcb71d252 introduces SystemClasses and BVExample
kleing
parents: 12911
diff changeset
    95
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    96
code_datatype list_nam test_nam
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    97
lemma equal_cnam_code [code]:
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    98
  "HOL.equal list_nam list_nam \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
    99
  "HOL.equal test_nam test_nam \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   100
  "HOL.equal list_nam test_nam \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   101
  "HOL.equal test_nam list_nam \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   102
  by(simp_all add: distinct_classes distinct_classes[symmetric] equal_cnam_def)
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   103
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   104
code_datatype append_name makelist_name
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   105
lemma equal_mname_code [code]: 
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   106
  "HOL.equal append_name append_name \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   107
  "HOL.equal makelist_name makelist_name \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   108
  "HOL.equal append_name makelist_name \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   109
  "HOL.equal makelist_name append_name \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   110
  by(simp_all add: distinct_methods distinct_methods[symmetric] equal_mname_def)
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   111
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   112
code_datatype val_nam next_nam
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   113
lemma equal_vnam_code [code]: 
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   114
  "HOL.equal val_nam val_nam \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   115
  "HOL.equal next_nam next_nam \<longleftrightarrow> True"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   116
  "HOL.equal val_nam next_nam \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   117
  "HOL.equal next_nam val_nam \<longleftrightarrow> False"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   118
  by(simp_all add: distinct_fields distinct_fields[symmetric] equal_vnam_def)
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   119
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   120
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   121
lemma equal_loc'_code [code]:
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   122
  "HOL.equal (nat_to_loc' l) (nat_to_loc' l') \<longleftrightarrow> l = l'"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   123
  by(simp add: equal_loc'_def nat_to_loc'_inject)
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   124
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   125
definition undefined_cname :: cname 
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   126
  where [code del]: "undefined_cname = undefined"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   127
code_datatype Object Xcpt Cname undefined_cname
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   128
declare undefined_cname_def[symmetric, code_inline]
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   129
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   130
definition undefined_val :: val
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   131
  where [code del]: "undefined_val = undefined"
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   132
declare undefined_val_def[symmetric, code_inline]
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   133
code_datatype Unit Null Bool Intg Addr undefined_val
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   134
20971
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   135
definition
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   136
  "test = exec (E, start_state E test_name makelist_name)"
1e7df197b8b8 added code generator setup
haftmann
parents: 18679
diff changeset
   137
44035
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   138
ML {*
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   139
  @{code test}; 
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   140
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   141
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   142
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   143
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   144
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   145
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   146
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   147
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   148
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   149
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   150
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   151
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   152
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   153
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   154
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   155
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   156
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   157
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   158
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   159
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   160
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   161
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   162
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   163
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   164
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   165
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   166
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   167
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   168
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   169
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   170
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   171
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   172
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   173
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   174
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   175
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   176
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   177
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   178
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   179
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   180
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   181
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   182
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   183
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   184
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   185
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   186
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   187
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   188
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   189
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   190
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   191
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   192
  @{code exec} (@{code E}, @{code the} it);
322d1657c40c replace old SML code generator by new code generator in MicroJava/JVM and /BV
Andreas Lochbihler
parents: 35416
diff changeset
   193
*}
12442
0ecba8660de7 Example for code generator.
berghofe
parents:
diff changeset
   194
12973
8040cce614e5 fixed missing label
kleing
parents: 12951
diff changeset
   195
end