blark.transform.IndirectSimpleSpecification

class blark.transform.IndirectSimpleSpecification(indirection: IndirectionType | None, type: SimpleSpecification, init_parameters: List[InputParameterAssignment] | None, meta: Meta | None = None)[source]

Bases: TypeSpecificationBase

A simple specification with the possibility of indirection.

Examples:

TypeName
POINTER TO TypeName
REFERENCE TO TypeName
REFERENCE TO POINTER TO TypeName

Initialization parameters such as these are parsed but otherwise ignored by TwinCAT:

POINTER TO TypeName(1, 2)
POINTER TO TypeName(1, 2, C := 4)

Lark grammar

This class is used by the following grammar rules:

indirect_simple_specification

indirect_simple_specification: [ indirection_type ] simple_specification [ input_param_args ]

Methods

__init__(indirection, type, init_parameters)

from_lark(indirection, type_, ...)

Attributes

base_type_name

The full type name.

full_type_name

The full type name.

meta

type_info

The base type name.

indirection

type

init_parameters

indirection: IndirectionType | None
type: SimpleSpecification
init_parameters: List[InputParameterAssignment] | None
meta: Meta | None = None
static from_lark(indirection: IndirectionType | None, type_: SimpleSpecification, init_parameters_tree: Tree | None) IndirectSimpleSpecification[source]
__init__(indirection: IndirectionType | None, type: SimpleSpecification, init_parameters: List[InputParameterAssignment] | None, meta: Meta | None = None) None