concepts.dm.crow.parsers.cdl_literal_parser.CDLLiteralTransformer#

class CDLLiteralTransformer[source]#

Bases: Transformer

The transformer for literal types. Including:

  • VARNAME, CONSTNAME, BASIC_TYPENAME

  • number, DEC_NUMBER, HEX_NUMBER, BIN_NUMBER, OCT_NUMBER, FLOAT_NUMBER, IMAG_NUMBER

  • boolean, TRUE, FALSE

  • string

  • literal_list

  • literal_set

  • decorator_k, decorator_kwarg, decorator_kwargs

Methods

BASIC_TYPENAME(token)

Captures basic type names (non-vector types), such as int, float, bool, object, etc.

BIN_NUMBER(value)

Captures binary number literals.

CONSTNAME(token)

Captures constant names, such as CONST_NAME.

DEC_NUMBER(value)

Captures decimal number literals.

ELLIPSIS(_)

Captures the ... literal.

FALSE(_)

Captures the False literal.

FLOAT_NUMBER(value)

Captures floating point number literals.

HEX_NUMBER(value)

Captures hexadecimal number literals.

IMAG_NUMBER(value)

Captures complex number literals.

OCT_NUMBER(value)

Captures octal number literals.

TRUE(_)

Captures the True literal.

VARNAME(token)

Captures variable names, such as var_name.

arguments_def(args)

Captures the arguments definition.

batched_typename(element_dtype, indices)

Captures batched typenames defined as typename[indices].

boolean(value)

Captures boolean literals.

decorator_kwarg(k[, v])

Captures the key-value pair of a decorator.

decorator_kwargs(args)

Captures the key-value pairs of a decorator.

in_typed_argument(name, value)

Captures typed arguments defined as name in value.

is_typed_argument(name, typename)

Captures typed arguments defined as name is typename.

list_typename(element_dtype)

Captures list typenames defined as list[typename].

literal(value)

Captures literal values.

literal_list(*items)

Captures literal lists, such as [1, 2, 3, 4].

literal_set(*items)

Captures literal sets, such as {1, 2, 3, 4}.

multi_typed_arguments(name, typename)

Captures multiple typed arguments defined as name1, name2: typename.

number(value)

Captures number literals, including integers, floats, and complex numbers.

sized_vector_typename(name, size)

Captures sized vector typenames defined as vector[typename, size].

string(value)

Captures string literals.

transform(tree)

Transform the given tree, and return the final result

typed_argument(name, typename)

Captures typed arguments defined as name: typename.

typename(name)

Captures typenames including basic types and vector types.

unsized_vector_typename(name)

Captures unsized vector typenames defined as vector[typename].

Attributes

BASIC_TYPENAME(token)[source]#

Captures basic type names (non-vector types), such as int, float, bool, object, etc.

BIN_NUMBER(value)[source]#

Captures binary number literals.

Parameters:

value (str)

Return type:

int

CONSTNAME(token)[source]#

Captures constant names, such as CONST_NAME.

DEC_NUMBER(value)[source]#

Captures decimal number literals.

Parameters:

value (str)

Return type:

int

ELLIPSIS(_)[source]#

Captures the literal.

Return type:

str

FALSE(_)[source]#

Captures the False literal.

Return type:

bool

FLOAT_NUMBER(value)[source]#

Captures floating point number literals.

Parameters:

value (str)

Return type:

float

HEX_NUMBER(value)[source]#

Captures hexadecimal number literals.

Parameters:

value (str)

Return type:

int

IMAG_NUMBER(value)[source]#

Captures complex number literals.

Parameters:

value (str)

Return type:

complex

OCT_NUMBER(value)[source]#

Captures octal number literals.

Parameters:

value (str)

Return type:

int

TRUE(_)[source]#

Captures the True literal.

Return type:

bool

VARNAME(token)[source]#

Captures variable names, such as var_name.

__init__(visit_tokens=True)#
Parameters:

visit_tokens (bool)

Return type:

None

__mul__(other)#

Chain two transformers together, returning a new transformer.

Parameters:
  • self (Transformer)

  • other (Transformer | TransformerChain[_Leaf_U, _Return_V])

Return type:

TransformerChain[_Leaf_T, _Return_V]

__new__(**kwargs)#
arguments_def(args)[source]#

Captures the arguments definition. This is used in function definitions.

batched_typename(element_dtype, indices)[source]#

Captures batched typenames defined as typename[indices].

Parameters:
Return type:

BatchedListType

boolean(value)[source]#

Captures boolean literals.

Parameters:

value (bool)

Return type:

bool

decorator_kwarg(k, v=True)[source]#

Captures the key-value pair of a decorator. This is used in the decorator syntax, such as [[k=True]].

Parameters:

v (LiteralValue | LiteralList | LiteralSet)

Return type:

Tuple[str, bool | int | float | complex | str | LiteralList | LiteralSet]

decorator_kwargs(args)[source]#

Captures the key-value pairs of a decorator. This is used in the decorator syntax, such as [[k=True, k2=123, k3=[1, 2, 3]]].

Return type:

Dict[str, bool | int | float | complex | str | LiteralList | LiteralSet]

in_typed_argument(name, value)[source]#

Captures typed arguments defined as name in value. This is used in forall/exists statements.

Parameters:
Return type:

InTypedArgument

is_typed_argument(name, typename)[source]#

Captures typed arguments defined as name is typename. This is used in forall/exists statements.

Parameters:
Return type:

Variable

list_typename(element_dtype)[source]#

Captures list typenames defined as list[typename].

Parameters:

element_dtype (str | TypeBase)

Return type:

ListType

literal(value)[source]#

Captures literal values.

Parameters:

value (bool | int | float | complex | str | LiteralList | LiteralSet)

Return type:

LiteralValue | LiteralList | LiteralSet

literal_list(*items)[source]#

Captures literal lists, such as [1, 2, 3, 4].

Parameters:

items (Any)

Return type:

LiteralList

literal_set(*items)[source]#

Captures literal sets, such as {1, 2, 3, 4}.

Parameters:

items (Any)

Return type:

LiteralSet

multi_typed_arguments(name, typename)[source]#

Captures multiple typed arguments defined as name1, name2: typename.

Parameters:
Return type:

CSList

number(value)[source]#

Captures number literals, including integers, floats, and complex numbers.

Parameters:

value (int | float | complex)

Return type:

int | float | complex

sized_vector_typename(name, size)[source]#

Captures sized vector typenames defined as vector[typename, size].

Parameters:
Return type:

VectorValueType

string(value)[source]#

Captures string literals.

Parameters:

value (str)

Return type:

str

transform(tree)#

Transform the given tree, and return the final result

Parameters:

tree (Tree[_Leaf_T])

Return type:

_Return_T

typed_argument(name, typename)[source]#

Captures typed arguments defined as name: typename.

Parameters:
Return type:

Variable

typename(name)[source]#

Captures typenames including basic types and vector types.

Parameters:

name (str | TypeBase)

Return type:

TypeBase

unsized_vector_typename(name)[source]#

Captures unsized vector typenames defined as vector[typename].

Parameters:

name (str | TypeBase)

Return type:

VectorValueType

domain: CrowDomain#