object

# `edcg`

Multiple hidden parameters: an extension to Prolog’s DCG notation. Ported to Logtalk as a hook object.

Author: Peter Van Roy; adapted to Logtalk by Paulo Moura.
Version: 1:4:2
Date: 2020-04-08
Copyright: Copyright (C) 1992 Peter Van Roy
License: MIT
Compilation flags:
`static, context_switching_calls`
Implements:
`public` expanding
Provides:
logtalk::message_tokens//2
Uses:
list
logtalk
Remarks:

> - Usage: Compile source files with objects (or categories) defining EDCGs using the compiler option `hook(edcg)`.

Inherited public predicates:
goal_expansion/2 term_expansion/2

## Public predicates

(no local declarations; see entity ancestors if any)

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

### `pred_info/3`

Declares predicates that have the listed hidden parameters.

Compilation flags:
`dynamic`
Template:
`pred_info(Name,Arity,HiddenParameters)`
Mode and number of proofs:
`pred_info(?atom,?integer,?list(atom))` - `zero_or_more`

### `acc_info/7`

Long form for declaring accumulators.

Compilation flags:
`dynamic`
Template:
`acc_info(Accumulator,Term,Left,Right,Joiner,LStart,RStart)`
Mode and number of proofs:
`acc_info(?atom,?term,?term,?term,?callable,?term,?term)` - `zero_or_more`

### `acc_info/5`

Short form for declaring accumulators.

Compilation flags:
`dynamic`
Template:
`acc_info(Accumulator,Term,Left,Right,Joiner)`
Mode and number of proofs:
`acc_info(?atom,?term,?term,?term,?callable)` - `zero_or_more`

### `pass_info/2`

Long form for declaring passed arguments. Passed arguments are conceptually the same as accumulators with `=/2` as the joiner function.

Compilation flags:
`dynamic`
Template:
`pass_info(Argument,PStart)`
Mode and number of proofs:
`pass_info(?atom,?term)` - `zero_or_more`

### `pass_info/1`

Short form for declaring passed arguments. Passed arguments are conceptually the same as accumulators with `=/2` as the joiner function.

Compilation flags:
`dynamic`
Template:
`pass_info(Argument)`
Mode and number of proofs:
`pass_info(?atom)` - `zero_or_more`

## Operators

### `op(1200,xfx,-->>)`

Scope:
`public`