mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
extras/trailed_update/samples/interpreter.m:
samples/interpreter.m:
We have these two different versions of a pure Prolog interpreter
as examples of Mercury code. Reduce the number of unneeded points
of difference between them, by copying the better code at each such point
to the other file.
tests/debugger/interpreter.m:
This file is automatically copied from samples/interpreter.m.
tests/debugger/interpreter.exp:
Expect the changes caused by the update to the source file.
51 lines
2.1 KiB
Plaintext
51 lines
2.1 KiB
Plaintext
E1: C1 CALL pred interpreter.main/2-0 (det) interpreter.m:48
|
|
mdb> echo on
|
|
Command echo enabled.
|
|
mdb> context none
|
|
Contexts will not be printed.
|
|
mdb> register --quiet
|
|
mdb> b consult_file
|
|
0: + stop interface pred interpreter.consult_file/5-0 (det)
|
|
mdb> c
|
|
Pure Prolog Interpreter.
|
|
|
|
E2: C2 CALL pred interpreter.consult_file/5-0 (det)
|
|
mdb> delete 0
|
|
0: E stop interface pred interpreter.consult_file/5-0 (det)
|
|
mdb> vars
|
|
1 File (arg 1)
|
|
2 STATE_VARIABLE_Database_0 (arg 2)
|
|
mdb> print *
|
|
File (arg 1) "interpreter.m"
|
|
STATE_VARIABLE_Database_0 (arg 2) []
|
|
mdb> b database_assert_clause
|
|
0: + stop interface pred interpreter.database_assert_clause/4-0 (det)
|
|
mdb> c
|
|
Consulting file `interpreter.m'...
|
|
E3: C3 CALL pred interpreter.database_assert_clause/4-0 (det)
|
|
mdb> delete 0
|
|
0: E stop interface pred interpreter.database_assert_clause/4-0 (det)
|
|
mdb> finish
|
|
E4: C3 EXIT pred interpreter.database_assert_clause/4-0 (det)
|
|
mdb> print *
|
|
VarSet (arg 1) varset(var_supply(0), empty, empty)
|
|
Term (arg 2) functor(atom(":-"), [functor(atom/1, [|]/2, context/2)], context("interpreter.m", 28))
|
|
Database (arg 3) []
|
|
HeadVar__4 [clause(varset(var_supply/1, empty, empty), functor(atom/1, [|]/2, context/2), functor(atom/1, [], context/2))]
|
|
mdb> finish -a
|
|
This command is a no-op from this port.
|
|
mdb> print *
|
|
VarSet (arg 1) varset(var_supply(0), empty, empty)
|
|
Term (arg 2) functor(atom(":-"), [functor(atom/1, [|]/2, context/2)], context("interpreter.m", 28))
|
|
Database (arg 3) []
|
|
HeadVar__4 [clause(varset(var_supply/1, empty, empty), functor(atom/1, [|]/2, context/2), functor(atom/1, [], context/2))]
|
|
mdb>
|
|
E5: C4 CALL pred interpreter.consult_until_eof/5-0 (det)
|
|
mdb> finish -n
|
|
E6: C4 EXIT pred interpreter.consult_until_eof/5-0 (det)
|
|
mdb>
|
|
E7: C5 EXIT pred interpreter.consult_until_eof/5-0 (det)
|
|
mdb> finish 1
|
|
E8: C2 EXIT pred interpreter.consult_file/5-0 (det)
|
|
mdb> continue
|
|
?- |