blark.transform.BinaryOperation
- class blark.transform.BinaryOperation(left: Expression, op: Token, right: Expression, meta: Meta | None = None)[source]
Bases:
Expression
A binary (i.e., two operand) operation.
Examples:
a + b a AND b a AND_THEN b a OR_ELSE b a := b a XOR b a = b -a * b a * 1.0
Expressions may be nested in either the left or right operand.
Lark grammar
This class is used by the following grammar rules:
expression
expression: assignment_expression ( ASSIGNMENT assignment_expression )*
add_expression
add_expression: expression_term ( ADD_OPERATOR expression_term )*
and_expression
and_expression: comparison_expression ( LOGICAL_AND comparison_expression )*
and_then_expression
and_then_expression: xor_expression ( LOGICAL_OR xor_expression )*
or_else_expression
or_else_expression: and_then_expression ( LOGICAL_AND_THEN and_then_expression )*
assignment_expression
assignment_expression: or_else_expression ( LOGICAL_OR_ELSE or_else_expression )*
xor_expression
xor_expression: and_expression ( LOGICAL_XOR and_expression )*
comparison_expression
comparison_expression: equality_expression ( EQUALS_OP equality_expression )*
equality_expression
equality_expression: add_expression ( COMPARE_OP add_expression )*
expression_term
expression_term: unary_expression ( MULTIPLY_OPERATOR unary_expression )*
Methods
__init__
(left, op, right[, meta])from_lark
(left, *operator_and_expr)Attributes
- left: Expression
- right: Expression
- static from_lark(left: Expression, *operator_and_expr: Token | Expression)[source]
- __init__(left: Expression, op: Token, right: Expression, meta: Meta | None = None) None