@@ -175,32 +175,51 @@ run_interpret() {
175175 debugger=
176176 output_format=' kore'
177177 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+ ;;
204223
205224 * ) fatal " Bad backend for interpreter: '$backend '"
206225 ;;
@@ -216,6 +235,7 @@ if [[ "$run_command" == 'help' ]] || [[ "$run_command" == '--help' ]] ; then
216235 echo "
217236 usage: $0 run [--backend (ocaml|java|llvm|haskell)] <pgm> <K arg>*
218237 $0 interpret [--backend (ocaml|llvm)] [--debug|--no-unparse] <pgm> <interpreter arg>*
238+ $0 interpret [--backend (haskell|java)] [--no-unparse] <pgm>
219239 $0 kast [--backend (ocaml|java|llvm|haskell|web3)] <pgm> <output format> <K arg>*
220240 $0 prove [--backend (java|haskell)] <spec> <K arg>* -m <def_module>
221241 $0 search [--backend (java|haskell)] <pgm> <pattern> <K arg>*
@@ -309,7 +329,7 @@ case "$run_command-$backend" in
309329 # Running
310330 run-@ (ocaml| java| llvm| haskell) ) run_krun " $@ " ;;
311331 kast-@ (ocaml| java| llvm| haskell| web3) ) run_kast " $@ " ;;
312- interpret-@ (ocaml| llvm) ) run_interpret " $@ " ;;
332+ interpret-@ (ocaml| llvm| haskell | java) ) run_interpret " $@ " ;;
313333 prove-@ (java| haskell) ) run_prove " $@ " ;;
314334 search-@ (java| haskell) ) run_search " $@ " ;;
315335 web3-@ (llvm) ) run_web3 " $@ " ;;
0 commit comments