nemoguardrails.colang.v2_x.lang.transformer

View as Markdown

Module Contents

Classes

NameDescription
ColangTransformerA Lark transformer for transforming the parsing tree into the right internal structure.

API

class nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer(
source: str,
include_source_mapping = True,
expand_await: bool = False
)

Bases: Transformer

A Lark transformer for transforming the parsing tree into the right internal structure.

It extracts the following:

  1. Flows
  2. Imports (TODO)
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer.__default__(
data,
children: list,
meta: lark.tree.Meta
) -> dict

Default function that is called if there is no attribute matching data

Can be overridden. Defaults to creating a new copy of the tree node (i.e. return Tree(data, children: list, meta))

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._abort_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Abort
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._break_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Break
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._continue_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Continue
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._expr(
_children: typing.List[dict],
meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._expr_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Assignment
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._flow_def(
children: dict,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Flow

Processing for flow tree nodes.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._global_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Global
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._if_stmt(
children: list,
_meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.If

Processing for spec tree nodes.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._import_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Import
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._label_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Label
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._log_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Log
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._name(
children: typing.List[dict],
_meta: lark.tree.Meta
) -> str

Processing for name tree nodes.

We just copy the values from the children: list, which should be tokens.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._non_var_spec_and(
children: list,
meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._non_var_spec_or(
children: list,
meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._print_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Print
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._priority_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Priority
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._remove_source_code_comments(
source: str
) -> str
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._return_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Return
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._set_stmt(
children: list,
meta: lark.tree.Meta
) -> typing.Union[nemoguardrails.colang.v2_x.lang.colang_ast.SpecOp, nemoguardrails.colang.v2_x.lang.colang_ast.Assignment]) -> typing.Union[nemoguardrails.colang.v2_x.lang.colang_ast.SpecOp, nemoguardrails.colang.v2_x.lang.colang_ast.Assignment]

The set statement can result in either a Set operation, or a SpecOp with a return value capturing.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._spec(
children: typing.List[dict],
_meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Spec

Processing for spec tree nodes.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._spec_name(
children: typing.List[str],
meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._spec_op(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.SpecOp

Processing for spec_op tree nodes.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._test(
_children,
meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._var_name(
children: typing.List[dict],
_meta: lark.tree.Meta
) -> dict
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._when_stmt(
children: list,
_meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.When

Processing for spec tree nodes.

nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._while_stmt(
children: list,
meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.While
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer.element(
_type: str,
elements: typing.Optional[typing.List[typing.Any]] = None,
meta: typing.Optional[lark.tree.Meta] = None
) -> dict

Helper to create an element of the specified type.