[not loaded]All predicatesShow sourcedcg.pl

Source dcg_optimise(+BodyIn, -Body, +S0) is det[private]
Performs the following translations:
  • a(H,T) :- H = [a,b|T], b(T), ... into a([a,b|T0]) :- b(T0, T).
  • a(H,T) :- H = [a,b|T] into a([a,b|T0])
Arguments:
S0- is the initial input list of the rule.
Source dcg_body(:DCG, ?Pos0, +Qualify, ?List, ?Tail, -Goal, -Pos) is det[private]
Translate DCG body term.
Source qualify(+QualifyInfo, +Goal, +Pos0, -QGoal, -Pos) is det[private]
Arguments:
QualifyInfo- is a term q(Module,Context,Pos), where Module is the module in which Goal must be called and Context is the current source module.
 dcg_extend(+Head, +Extra1, +Extra2, -NewHead)[private]
Extend Head with two more arguments (on behalf DCG compilation). The solution below is one option. Using =.. and append is the alternative. In the current version (5.3.2), the =.. is actually slightly faster, but it creates less garbage.
Source dcg_extend(:Rule, ?Pos0, ?List, ?Tail, -Head, -Pos) is det[private]
Extend a non-terminal with the DCG difference list List\Tail. The position term is extended as well to reflect the layout of the created term. The additional variables are located at the end of the Rule.
Source dcg_bt_pos(?BraceTermPos, -Pos) is det[private]
Position transformation for mapping of {G} to (G, S=SR).
Source dcg_terminal_pos(+ListPos, -TermPos)[private]
Source dcg_qualify_pos(?TermPos0, ?ModuleCreatingPos, -TermPos)[private]
Source phrase(:RuleSet, ?List)
Source phrase(:RuleSet, ?List, ?Rest)
Interface to DCGs
Source phrase(:RuleSet, ?List)
Source phrase(:RuleSet, ?List, ?Rest)
Interface to DCGs

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

Source dcg_translate_rule(Arg1, Arg2, Arg3, Arg4)
Source dcg_translate_rule(Arg1, Arg2)
Source call_dcg(Arg1, Arg2, Arg3)