ast
This module contains the nodes which comprise the abstract syntax tree generated from parsed grammar text.
Warning
The content of this module should be treated as private.
While the code within this module is documented, it is not meant to be used by consumers of the package. Directly accessing and using any object or function within this module should be done with care. Breaking API changes within this module may not always cause a major version bump. The reason for this is that it is often necessary to update the AST in an API breaking way in order to add new features.
Classes
- class Assignment(name, *, value=UNDEFINED, value_type=None)[source]
Bases:
objectAn internal assignment whereby a symbol is populated with a value of the specified type.
- name
- value
- value_type
- class Statement(context, expression, comment=None)[source]
Bases:
ASTNodeBaseA class representing the top level statement of the grammar text.
Base Classes
- class ExpressionBase[source]
Bases:
ASTNodeBase- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class LeftOperatorRightExpressionBase(context, type_, left, right)[source]
Bases:
ExpressionBaseA base class for representing complex expressions composed of a left side and a right side, separated by an operator.
- compatible_types
A tuple containing the compatible data types that the left and right expressions must return. This can for example be used to indicate that arithmetic operations are compatible with
FLOATbut notSTRINGvalues.
- __init__(context, type_, left, right)[source]
- Parameters:
context (
Context) – The context to use for evaluating the expression.type (str) – The grammar type of operator at the center of the expression. Subclasses must define operator methods to handle evaluation based on this value.
left (
ExpressionBase) – The expression to the left of the operator.right (
ExpressionBase) – The expression to the right of the operator.
Left-Operator-Right Expressions
- class AddExpression(*args, **kwargs)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing addition expressions from the grammar text.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class SubtractExpression(*args, **kwargs)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing subtraction expressions from the grammar text.
Added in version 3.5.0.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class ArithmeticExpression(context, type_, left, right)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing arithmetic expressions from the grammar text such as multiplication and division.
- result_type = FLOAT
The data type of the result of successful evaluation.
- class ArithmeticComparisonExpression(*args, **kwargs)[source]
Bases:
ComparisonExpressionA class for representing arithmetic comparison expressions from the grammar text such as less-than-or-equal-to and greater-than.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
- class BitwiseExpression(*args, **kwargs)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing bitwise arithmetic expressions from the grammar text such as XOR and shifting operations.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class BitwiseShiftExpression(*args, **kwargs)[source]
Bases:
BitwiseExpression- result_type = FLOAT
The data type of the result of successful evaluation.
- class ComparisonExpression(context, type_, left, right)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing comparison expressions from the grammar text such as equality checks.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
- class LogicExpression(context, type_, left, right)[source]
Bases:
LeftOperatorRightExpressionBaseA class for representing logical expressions from the grammar text such as “and” and “or”.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
- class FuzzyComparisonExpression(*args, **kwargs)[source]
Bases:
ComparisonExpressionA class for representing regular expression comparison expressions from the grammar text such as search and does not match.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
Literal Expressions
- class ArrayExpression(*args, **kwargs)[source]
Bases:
_CollectionMixin,LiteralExpressionBaseLiteral array expressions containing 0 or more sub-expressions.
- result_type = ARRAY
The data type of the result of successful evaluation.
- class BooleanExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral boolean expressions representing True or False.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
- class BytesExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral bytes expressions representing a binary string. This expression type always evaluates to true when not empty.
- result_type = BYTES
The data type of the result of successful evaluation.
- class DatetimeExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral datetime expressions representing a specific point in time. This expression type always evaluates to true.
- result_type = DATETIME
The data type of the result of successful evaluation.
- class FloatExpression(context, value, **kwargs)[source]
Bases:
LiteralExpressionBaseLiteral float expressions representing numerical values.
- result_type = FLOAT
The data type of the result of successful evaluation.
- class FunctionExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral mapping expression representing a function.
- result_type = FUNCTION
The data type of the result of successful evaluation.
- class MappingExpression(context, value, **kwargs)[source]
Bases:
LiteralExpressionBaseLiteral mapping expression representing a set of associations between keys and values.
- result_type = MAPPING
The data type of the result of successful evaluation.
- class NullExpression(context, value=None)[source]
Bases:
LiteralExpressionBaseLiteral null expressions representing null values. This expression type always evaluates to false.
- result_type = NULL
The data type of the result of successful evaluation.
- class SetExpression(*args, **kwargs)[source]
Bases:
_CollectionMixin,LiteralExpressionBaseLiteral set expressions containing 0 or more sub-expressions.
- result_type = SET
The data type of the result of successful evaluation.
- class StringExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral string expressions representing an array of characters.
- result_type = STRING
The data type of the result of successful evaluation.
- class TimedeltaExpression(context, value)[source]
Bases:
LiteralExpressionBaseLiteral timedelta expressions representing an offset from a specific point in time.
Added in version 3.5.0.
- result_type = TIMEDELTA
The data type of the result of successful evaluation.
Miscellaneous Expressions
- class ComprehensionExpression(context, result, variable, iterable, condition=None)[source]
Bases:
ExpressionBase- result_type = ARRAY
The data type of the result of successful evaluation.
- class ContainsExpression(context, container, member)[source]
Bases:
ExpressionBaseAn expression used to test whether an item exists within a container.
- result_type = BOOLEAN
The data type of the result of successful evaluation.
- class GetAttributeExpression(context, object_, name, safe=False)[source]
Bases:
ExpressionBaseA class representing an expression in which name is retrieved as an attribute of object.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class GetItemExpression(context, container, item, safe=False)[source]
Bases:
ExpressionBaseA class representing an expression in which an item is retrieved from a container object.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class GetSliceExpression(context, container, start=None, stop=None, safe=False)[source]
Bases:
ExpressionBaseA class representing an expression in which a range of items is retrieved from a container object.
- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class SymbolExpression(context, name, scope=None)[source]
Bases:
ExpressionBaseA class representing a symbol name to be resolved at evaluation time with the help of a
Contextobject.- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class TernaryExpression(context, condition, case_true, case_false)[source]
Bases:
ExpressionBaseA class for representing ternary expressions from the grammar text. These involve evaluating
conditionbefore evaluating eithercase_trueorcase_falsebased on the results.- result_type = UNDEFINED
The data type of the result of successful evaluation.
- class UnaryExpression(context, type_, right)[source]
Bases:
ExpressionBaseA class for representing unary expressions from the grammar text. These involve a single operator on the left side.
- result_type = UNDEFINED
The data type of the result of successful evaluation.