- dcgshell(+Interp, +Id, ?S1, ?S2) is semidet
- dcgshell(+Id, ?S1, ?S2) is semidet
- dcgshell(?S1, ?S2) is semidet
- Runs an interactive shell where typed commands are interepreted
as DCG phrases. The cumulative result of all these phrases takes
the DCG state from S1 to S2. If present, Id is used to identify
the shell and is written as part of the prompt. The default prompt
is 'dcg'.
Pressing Ctrl-D at the prompt or typing 'halt' or 'end_of_file'
terminates the shell unifying S2 with the final state. The command
'fail' terminates the shell and causes dcgshell/2 or dcgshell/3 as
a whole to fail, without leaving any choice points.
dcgshell/4 allows the specification of an alternate interpreter
other than call_dcg/3, which is the default in the other forms.
Special commands
- module(M)
- Switches context module of interpreter to M.
- interp(I)
- Change to a new interpreter. Eg,
interp(time)
will
cause timing information to be printed after each
command is interpreted.
- X ^ Phrase
- Causes Phrase to be interpreted after binding X to the
id of the current interpreter. Since the id can be any
term, you can use it as simple sort of environment in which
you can keep data that might be useful later on.
- make// is det
- DCG shell command to update loaded files, just as with make/0.
- help(+Topic)// is det
- Look-up help on Topic, just as with help/1.
- time(+G:phrase(S))// is semidet
- time(+G:pred(A,S,S), ?X:A)// is semidet
- time(+G:pred(A,B,S,S), ?X:A, ?Y:B)// is semidet
- Time execution of DCG phrase G. Any extra arguments are passed
to G as in call/N.
- profile_phrase(+G:phrase(_))// is semidet
- Profile execution of DCG phrase G.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
- dcgshell(Arg1, Arg2)
- dcgshell(Arg1, Arg2, Arg3)
- time(Arg1, Arg2, Arg3, Arg4)
- time(Arg1, Arg2, Arg3, Arg4, Arg5)
- trace(Arg1, Arg2, Arg3)
- catch(Arg1, Arg2, Arg3, Arg4, Arg5)