> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/guardrails/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.colang.v2_x.lang.transformer

## Module Contents

### Classes

| Name                                                                                  | Description                                                                             |
| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| [`ColangTransformer`](#nemoguardrails-colang-v2_x-lang-transformer-ColangTransformer) | A Lark transformer for transforming the parsing tree into the right internal structure. |

### API

```python
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)

```python
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)`)

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._abort_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Abort
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._break_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Break
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._continue_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Continue
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._expr(
    _children: typing.List[dict],
    meta: lark.tree.Meta
) -> dict
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._expr_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Assignment
```

```python
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.

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

```python
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.

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._import_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Import
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._label_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Label
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._log_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Log
```

```python
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.

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._non_var_spec_and(
    children: list,
    meta: lark.tree.Meta
) -> dict
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._non_var_spec_or(
    children: list,
    meta: lark.tree.Meta
) -> dict
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._print_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Print
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._priority_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Priority
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._remove_source_code_comments(
    source: str
) -> str
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._return_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.Return
```

```python
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]
```

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

```python
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.

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

```python
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.

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._test(
    _children,
    meta: lark.tree.Meta
) -> dict
```

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._var_name(
    children: typing.List[dict],
    _meta: lark.tree.Meta
) -> dict
```

```python
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.

```python
nemoguardrails.colang.v2_x.lang.transformer.ColangTransformer._while_stmt(
    children: list,
    meta: lark.tree.Meta
) -> nemoguardrails.colang.v2_x.lang.colang_ast.While
```

```python
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.