vxml_pipeline/nodemaps_2_transform
Tree walkers that lift a single-node mapping function into a complete
DesugarerTransform.
Ordinary nodemaps are post-order: children are transformed before their
parent. Functions ending in _without_walking apply only to the supplied
root. Functions ending in _outside leave V-nodes named by the outside
list, and their entire subtrees, unchanged. Those tag names are validated
when the transform is constructed.
Nodemap family names use this term order:
EarlyReturn | ""
Fancy | ""
OneToOne | OneToMany | OneToOption
EnterExitStateful | Stateful | ""
WithChildStates | ""
NoError | ""
WithWarnings | ""
Nodemap
OneToOne, OneToMany, and OneToOption describe the number of output
nodes. Fancy supplies ancestor and sibling context. Stateful threads an
accumulator through the walk. EnterExitStateful provides separate hooks
before and after child traversal; its exit hook receives both the state at
entry and the latest descendant state. WithChildStates additionally
supplies the state returned by each child. EarlyReturn can suppress
descent into the current subtree. NoError and WithWarnings describe the
callback’s result capabilities.
Stateful visitors form a separate family: they gather state without returning replacement VXML.
Types
Fallible contextual enter/exit callbacks that may warn or skip subtrees.
pub type EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(a) {
EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(
on_enter: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(
vxml.VXML,
a,
List(core.DesugaringWarning),
core.TrafficLight,
),
core.DesugaringError,
),
on_exit: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
a,
) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_text: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
)
}
Constructors
-
EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap( on_enter: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #( vxml.VXML, a, List(core.DesugaringWarning), core.TrafficLight, ), core.DesugaringError, ), on_exit: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, a, ) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), on_text: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), )
Contextual enter/exit callbacks that may remove nodes, warn, fail, or skip subtrees.
pub type EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(a) {
EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(
on_enter: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(
option.Option(vxml.VXML),
a,
List(core.DesugaringWarning),
core.TrafficLight,
),
core.DesugaringError,
),
on_exit: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
a,
) -> Result(
#(option.Option(vxml.VXML), a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_text: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(option.Option(vxml.VXML), a, List(core.DesugaringWarning)),
core.DesugaringError,
),
)
}
Constructors
-
EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap( on_enter: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #( option.Option(vxml.VXML), a, List(core.DesugaringWarning), core.TrafficLight, ), core.DesugaringError, ), on_exit: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, a, ) -> Result( #(option.Option(vxml.VXML), a, List(core.DesugaringWarning)), core.DesugaringError, ), on_text: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #(option.Option(vxml.VXML), a, List(core.DesugaringWarning)), core.DesugaringError, ), )
An infallible one-to-many callback that may skip the current subtree.
pub type EarlyReturnOneToManyNoErrorNodemap =
fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight)
Fallible enter/exit callbacks that may skip the current subtree.
pub type EarlyReturnOneToOneEnterExitStatefulNodemap(a) {
EarlyReturnOneToOneEnterExitStatefulNodemap(
on_enter: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a, core.TrafficLight),
core.DesugaringError,
),
on_exit: fn(vxml.VXML, a, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
on_text: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
)
}
Constructors
-
EarlyReturnOneToOneEnterExitStatefulNodemap( on_enter: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a, core.TrafficLight), core.DesugaringError, ), on_exit: fn(vxml.VXML, a, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), on_text: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), )
Fallible warning-producing enter/exit callbacks that may skip subtrees.
pub type EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(a) {
EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(
on_enter: fn(vxml.VXML, a) -> Result(
#(
vxml.VXML,
a,
List(core.DesugaringWarning),
core.TrafficLight,
),
core.DesugaringError,
),
on_exit: fn(vxml.VXML, a, a) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_text: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
)
}
Constructors
-
EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap( on_enter: fn(vxml.VXML, a) -> Result( #( vxml.VXML, a, List(core.DesugaringWarning), core.TrafficLight, ), core.DesugaringError, ), on_exit: fn(vxml.VXML, a, a) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), on_text: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), )
An infallible one-to-one callback that may skip the current subtree.
pub type EarlyReturnOneToOneNoErrorNodemap =
fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight)
A fallible one-to-one callback that may skip the current subtree.
pub type EarlyReturnOneToOneNodemap =
fn(vxml.VXML) -> Result(
#(vxml.VXML, core.TrafficLight),
core.DesugaringError,
)
Infallible enter/exit callbacks that may remove nodes and inspect every child’s resulting state.
pub type EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(a) {
EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(
on_enter: fn(vxml.VXML, a) -> #(
option.Option(vxml.VXML),
a,
core.TrafficLight,
),
on_exit: fn(vxml.VXML, a, List(a)) -> #(
option.Option(vxml.VXML),
a,
),
on_text: fn(vxml.VXML, a) -> #(option.Option(vxml.VXML), a),
)
}
Constructors
-
EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap( on_enter: fn(vxml.VXML, a) -> #( option.Option(vxml.VXML), a, core.TrafficLight, ), on_exit: fn(vxml.VXML, a, List(a)) -> #( option.Option(vxml.VXML), a, ), on_text: fn(vxml.VXML, a) -> #(option.Option(vxml.VXML), a), )
A fallible state-gathering visitor that may skip the current subtree.
pub type EarlyReturnStatefulVisitor(a) =
fn(vxml.VXML, a) -> Result(
#(a, core.TrafficLight),
core.DesugaringError,
)
Fallible enter/exit callbacks with tree-position context.
pub type FancyOneToOneEnterExitStatefulNodemap(a) {
FancyOneToOneEnterExitStatefulNodemap(
on_enter: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(#(vxml.VXML, a), core.DesugaringError),
on_exit: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
a,
) -> Result(#(vxml.VXML, a), core.DesugaringError),
on_text: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(#(vxml.VXML, a), core.DesugaringError),
)
}
Constructors
-
FancyOneToOneEnterExitStatefulNodemap( on_enter: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result(#(vxml.VXML, a), core.DesugaringError), on_exit: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, a, ) -> Result(#(vxml.VXML, a), core.DesugaringError), on_text: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result(#(vxml.VXML, a), core.DesugaringError), )
Fallible contextual enter/exit callbacks that may emit warnings.
pub type FancyOneToOneEnterExitStatefulWithWarningsNodemap(a) {
FancyOneToOneEnterExitStatefulWithWarningsNodemap(
on_enter: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_exit: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
a,
) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_text: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
a,
) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
)
}
Constructors
-
FancyOneToOneEnterExitStatefulWithWarningsNodemap( on_enter: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), on_exit: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, a, ) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), on_text: fn( vxml.VXML, List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), List(vxml.VXML), a, ) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), )
A fallible root inspection or side calculation that returns no VXML.
pub type NodeToNil =
fn(vxml.VXML) -> Result(Nil, core.DesugaringError)
A fallible transformation of one VXML node into one node.
pub type NodeToNode =
fn(vxml.VXML) -> Result(vxml.VXML, core.DesugaringError)
A fallible one-node transformation that may emit warnings.
pub type NodeToNodeWithWarnings =
fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
Fallible stateful enter/exit callbacks that return zero or more nodes.
pub type OneToManyEnterExitStatefulNodemap(a) {
OneToManyEnterExitStatefulNodemap(
on_enter: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
on_exit: fn(vxml.VXML, a, a) -> Result(
#(List(vxml.VXML), a),
core.DesugaringError,
),
on_text: fn(vxml.VXML, a) -> Result(
#(List(vxml.VXML), a),
core.DesugaringError,
),
)
}
Constructors
-
OneToManyEnterExitStatefulNodemap( on_enter: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), on_exit: fn(vxml.VXML, a, a) -> Result( #(List(vxml.VXML), a), core.DesugaringError, ), on_text: fn(vxml.VXML, a) -> Result( #(List(vxml.VXML), a), core.DesugaringError, ), )
Fallible stateful one-to-many enter/exit callbacks that may emit warnings.
pub type OneToManyEnterExitStatefulWithWarningsNodemap(a) {
OneToManyEnterExitStatefulWithWarningsNodemap(
on_enter: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_exit: fn(vxml.VXML, a, a) -> Result(
#(List(vxml.VXML), a, List(core.DesugaringWarning)),
core.DesugaringError,
),
on_text: fn(vxml.VXML, a) -> Result(
#(List(vxml.VXML), a, List(core.DesugaringWarning)),
core.DesugaringError,
),
)
}
Constructors
-
OneToManyEnterExitStatefulWithWarningsNodemap( on_enter: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a, List(core.DesugaringWarning)), core.DesugaringError, ), on_exit: fn(vxml.VXML, a, a) -> Result( #(List(vxml.VXML), a, List(core.DesugaringWarning)), core.DesugaringError, ), on_text: fn(vxml.VXML, a) -> Result( #(List(vxml.VXML), a, List(core.DesugaringWarning)), core.DesugaringError, ), )
An infallible one-to-many callback that may emit warnings.
pub type OneToManyNoErrorWithWarningsNodemap =
fn(vxml.VXML) -> #(
List(vxml.VXML),
List(core.DesugaringWarning),
)
A fallible callback that replaces one node with zero or more nodes.
pub type OneToManyNodemap =
fn(vxml.VXML) -> Result(List(vxml.VXML), core.DesugaringError)
Infallible stateful callbacks for entering elements, exiting elements, and visiting text nodes.
pub type OneToOneEnterExitStatefulNoErrorNodemap(a) {
OneToOneEnterExitStatefulNoErrorNodemap(
on_enter: fn(vxml.VXML, a) -> #(vxml.VXML, a),
on_exit: fn(vxml.VXML, a, a) -> #(vxml.VXML, a),
on_text: fn(vxml.VXML, a) -> #(vxml.VXML, a),
)
}
Constructors
Fallible stateful callbacks for entering elements, exiting elements, and visiting text nodes.
pub type OneToOneEnterExitStatefulNodemap(a) {
OneToOneEnterExitStatefulNodemap(
on_enter: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
on_exit: fn(vxml.VXML, a, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
on_text: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
)
}
Constructors
-
OneToOneEnterExitStatefulNodemap( on_enter: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), on_exit: fn(vxml.VXML, a, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), on_text: fn(vxml.VXML, a) -> Result( #(vxml.VXML, a), core.DesugaringError, ), )
An infallible one-to-one callback that may emit warnings.
pub type OneToOneNoErrorWithWarningsNodemap =
fn(vxml.VXML) -> #(vxml.VXML, List(core.DesugaringWarning))
A fallible callback that replaces one node with one node.
pub type OneToOneNodemap =
fn(vxml.VXML) -> Result(vxml.VXML, core.DesugaringError)
A fallible one-to-one callback that threads state through the walk.
pub type OneToOneStatefulNodemap(a) =
fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
)
An infallible state-gathering visitor.
pub type StatefulNoErrorVisitor(a) =
fn(vxml.VXML, a) -> a
Values
pub fn add_no_warnings(vxml: vxml.VXML) -> #(vxml.VXML, List(a))
Pairs a transformed VXML root with an empty warning list.
pub fn early_return_fancy_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
nodemap: EarlyReturnFancyOneToOneEnterExitStatefulWithWarningsNodemap(
a,
),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_fancy_one_to_one_no_error_nodemap_2_desugarer_transform(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> #(vxml.VXML, core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
early_return_fancy_one_to_option_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform
</>pub fn early_return_fancy_one_to_option_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
nodemap: EarlyReturnFancyOneToOptionEnterExitStatefulWithWarningsNodemap(
a,
),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_many_no_error_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_many_no_error_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> #(List(vxml.VXML), core.TrafficLight),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
nodemap: EarlyReturnOneToOneEnterExitStatefulNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_enter_exit_stateful_nodemap_walk(
original_state: a,
node: vxml.VXML,
nodemap: EarlyReturnOneToOneEnterExitStatefulNodemap(a),
) -> Result(#(vxml.VXML, a), core.DesugaringError)
pub fn early_return_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
nodemap: EarlyReturnOneToOneEnterExitStatefulWithWarningsNodemap(
a,
),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_no_error_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_no_error_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> #(vxml.VXML, core.TrafficLight),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> Result(
#(vxml.VXML, core.TrafficLight),
core.DesugaringError,
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_one_to_one_nodemap_walk(
node: vxml.VXML,
nodemap: fn(vxml.VXML) -> Result(
#(vxml.VXML, core.TrafficLight),
core.DesugaringError,
),
) -> Result(vxml.VXML, core.DesugaringError)
early_return_one_to_option_enter_exit_stateful_with_child_states_no_error_nodemap_2_desugarer_transform
</>pub fn early_return_one_to_option_enter_exit_stateful_with_child_states_no_error_nodemap_2_desugarer_transform(
nodemap: EarlyReturnOneToOptionEnterExitStatefulWithChildStatesNoErrorNodemap(
a,
),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn early_return_stateful_visit(
vxml: vxml.VXML,
state: state,
visitor: fn(vxml.VXML, state) -> Result(
#(state, core.TrafficLight),
core.DesugaringError,
),
) -> Result(state, core.DesugaringError)
pub fn enter_exit_identity(
vxml: vxml.VXML,
state: state,
) -> Result(#(vxml.VXML, state), core.DesugaringError)
An enter/exit hook that leaves both VXML and state unchanged.
pub fn enter_exit_keep_latest_state(
vxml: vxml.VXML,
original_state: state,
latest_state: state,
) -> Result(#(vxml.VXML, state), core.DesugaringError)
An exit hook that keeps the VXML and the latest descendant state.
pub fn fancy_one_to_many_no_error_nodemap_2_desugarer_transform(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> List(vxml.VXML),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_many_nodemap_2_desugarer_transform(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> Result(List(vxml.VXML), core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
nodemap: FancyOneToOneEnterExitStatefulNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_one_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
nodemap: FancyOneToOneEnterExitStatefulWithWarningsNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_one_no_error_nodemap_2_desugarer_transform(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> vxml.VXML,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_one_nodemap_2_desugarer_transform(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> Result(vxml.VXML, core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn fancy_one_to_one_nodemap_2_desugarer_transform_outside(
nodemap: fn(
vxml.VXML,
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
List(vxml.VXML),
) -> Result(vxml.VXML, core.DesugaringError),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn identity_transform(
vxml: vxml.VXML,
) -> Result(#(vxml.VXML, List(a)), b)
A desugarer transform that returns its input unchanged without warnings.
pub fn node_to_nil_2_desugarer_transform_without_walking(
node_to_nil: fn(vxml.VXML) -> Result(Nil, core.DesugaringError),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(a)),
core.DesugaringError,
)
Runs a root-only NodeToNil callback and returns the original VXML when it
succeeds.
pub fn node_to_node_2_desugarer_transform_without_walking(
node_to_node: fn(vxml.VXML) -> Result(
vxml.VXML,
core.DesugaringError,
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(a)),
core.DesugaringError,
)
Converts a root-only one-node transformation into a desugarer transform.
pub fn node_to_node_with_warnings_2_desugarer_transform_without_walking(
node_to_node: fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
Converts a warning-producing root-only transformation into a desugarer transform.
pub fn one_to_many_enter_exit_stateful_nodemap_2_desugarer_transform(
nodemap: OneToManyEnterExitStatefulNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_enter_exit_stateful_with_warnings_nodemap_2_desugarer_transform(
nodemap: OneToManyEnterExitStatefulWithWarningsNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> List(vxml.VXML),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> List(vxml.VXML),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_no_error_nodemap_walk(
node: vxml.VXML,
nodemap: fn(vxml.VXML) -> List(vxml.VXML),
) -> List(vxml.VXML)
pub fn one_to_many_no_error_with_warnings_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> #(
List(vxml.VXML),
List(core.DesugaringWarning),
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_no_error_with_warnings_nodemap_walk(
node: vxml.VXML,
nodemap: fn(vxml.VXML) -> #(
List(vxml.VXML),
List(core.DesugaringWarning),
),
) -> #(List(vxml.VXML), List(core.DesugaringWarning))
pub fn one_to_many_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> Result(
List(vxml.VXML),
core.DesugaringError,
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_many_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> Result(
List(vxml.VXML),
core.DesugaringError,
),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_no_error_nodemap_2_desugarer_transform(
nodemap: OneToOneEnterExitStatefulNoErrorNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_no_error_nodemap_2_desugarer_transform_outside(
nodemap: OneToOneEnterExitStatefulNoErrorNodemap(a),
initial_state: a,
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_enter_exit_stateful_nodemap_2_desugarer_transform(
nodemap: OneToOneEnterExitStatefulNodemap(a),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> vxml.VXML,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> vxml.VXML,
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_2_desugarer_transform_outside_self_first(
nodemap: fn(vxml.VXML) -> vxml.VXML,
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_no_error_nodemap_walk(
node: vxml.VXML,
nodemap: fn(vxml.VXML) -> vxml.VXML,
) -> vxml.VXML
pub fn one_to_one_no_error_with_warnings_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> #(
vxml.VXML,
List(core.DesugaringWarning),
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_no_error_with_warnings_nodemap_walk(
node: vxml.VXML,
nodemap: fn(vxml.VXML) -> #(
vxml.VXML,
List(core.DesugaringWarning),
),
) -> #(vxml.VXML, List(core.DesugaringWarning))
pub fn one_to_one_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML) -> Result(
vxml.VXML,
core.DesugaringError,
),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_nodemap_2_desugarer_transform_outside(
nodemap: fn(vxml.VXML) -> Result(
vxml.VXML,
core.DesugaringError,
),
outside: List(String),
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)
pub fn one_to_one_stateful_nodemap_2_desugarer_transform(
nodemap: fn(vxml.VXML, a) -> Result(
#(vxml.VXML, a),
core.DesugaringError,
),
initial_state: a,
) -> fn(vxml.VXML) -> Result(
#(vxml.VXML, List(core.DesugaringWarning)),
core.DesugaringError,
)