@@ -175,32 +175,51 @@ run_interpret() {
175
175
debugger=
176
176
output_format=' kore'
177
177
case " $backend " in
178
- ocaml) run_kast kast > " $kast "
179
- output_format=' kast'
180
- if $debug ; then debugger=ocamldebug; fi
181
- $debugger " $interpreter " " $backend_dir /driver-kompiled/realdef.cma" \
182
- -c PGM " $kast " textfile \
183
- -c SCHEDULE " $cSCHEDULE " text \
184
- -c MODE " $cMODE " text \
185
- --initializer ' initKevmCell' \
186
- --output-file " $output " " $@ " \
187
- || exit_status=" $? "
188
- if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
189
- k-bin-to-text " $output " " $output_text "
190
- cat " $output_text "
191
- fi
192
- exit " $exit_status "
193
- ;;
194
-
195
- llvm) run_kast kore > " $kast "
196
- if $debug ; then debugger=" gdb --args" ; fi
197
- $debugger " $interpreter " " $kast " -1 " $output_text " " $@ " \
198
- || exit_status=" $? "
199
- if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
200
- cat " $output_text " | " $0 " kast --backend " $backend " - pretty --input " $output_format " --sort GeneratedTopCell
201
- fi
202
- exit " $exit_status "
203
- ;;
178
+ ocaml) run_kast kast > " $kast "
179
+ output_format=' kast'
180
+ if $debug ; then debugger=ocamldebug; fi
181
+ $debugger " $interpreter " " $backend_dir /driver-kompiled/realdef.cma" \
182
+ -c PGM " $kast " textfile \
183
+ -c SCHEDULE " $cSCHEDULE " text \
184
+ -c MODE " $cMODE " text \
185
+ --initializer ' initKevmCell' \
186
+ --output-file " $output " " $@ " \
187
+ || exit_status=" $? "
188
+ if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
189
+ k-bin-to-text " $output " " $output_text "
190
+ cat " $output_text "
191
+ fi
192
+ exit " $exit_status "
193
+ ;;
194
+
195
+ java) run_kast kast > " $kast "
196
+ output_format=' kast'
197
+ run_file=" $kast "
198
+ run_krun --parser ' cat' --output kast > " $output " || exit_status=" $? "
199
+ if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
200
+ cat " $output " | " $0 " kast --backend " $backend " - pretty --input " $output_format "
201
+ fi
202
+ exit " $exit_status "
203
+ ;;
204
+
205
+ llvm) run_kast kore > " $kast "
206
+ if $debug ; then debugger=" gdb --args" ; fi
207
+ $debugger " $interpreter " " $kast " -1 " $output " " $@ " \
208
+ || exit_status=" $? "
209
+ if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
210
+ cat " $output " | " $0 " kast --backend " $backend " - pretty --input " $output_format " --sort GeneratedTopCell
211
+ fi
212
+ exit " $exit_status "
213
+ ;;
214
+
215
+ haskell) run_kast kore > " $kast "
216
+ kore-exec " $backend_dir /driver-kompiled/definition.kore" --pattern " $kast " --module ETHEREUM-SIMULATION --smt none --output " $output " \
217
+ || exit_status=" $? "
218
+ if [[ " $unparse " == ' true' ]] && [[ " $exit_status " != ' 0' ]]; then
219
+ cat " $output " | " $0 " kast --backend " $backend " - pretty --input " $output_format " --sort GeneratedTopCell
220
+ fi
221
+ exit " $exit_status "
222
+ ;;
204
223
205
224
* ) fatal " Bad backend for interpreter: '$backend '"
206
225
;;
@@ -216,6 +235,7 @@ if [[ "$run_command" == 'help' ]] || [[ "$run_command" == '--help' ]] ; then
216
235
echo "
217
236
usage: $0 run [--backend (ocaml|java|llvm|haskell)] <pgm> <K arg>*
218
237
$0 interpret [--backend (ocaml|llvm)] [--debug|--no-unparse] <pgm> <interpreter arg>*
238
+ $0 interpret [--backend (haskell|java)] [--no-unparse] <pgm>
219
239
$0 kast [--backend (ocaml|java|llvm|haskell|web3)] <pgm> <output format> <K arg>*
220
240
$0 prove [--backend (java|haskell)] <spec> <K arg>* -m <def_module>
221
241
$0 search [--backend (java|haskell)] <pgm> <pattern> <K arg>*
@@ -309,7 +329,7 @@ case "$run_command-$backend" in
309
329
# Running
310
330
run-@ (ocaml| java| llvm| haskell) ) run_krun " $@ " ;;
311
331
kast-@ (ocaml| java| llvm| haskell| web3) ) run_kast " $@ " ;;
312
- interpret-@ (ocaml| llvm) ) run_interpret " $@ " ;;
332
+ interpret-@ (ocaml| llvm| haskell | java) ) run_interpret " $@ " ;;
313
333
prove-@ (java| haskell) ) run_prove " $@ " ;;
314
334
search-@ (java| haskell) ) run_search " $@ " ;;
315
335
web3-@ (llvm) ) run_web3 " $@ " ;;
0 commit comments