ast#
- class wrenfold.ast.Add#
Addition operation:
args[0] + args[1] + ...
- __init__(*args, **kwargs)#
- property args#
Operands to the addition. There will always be more than one element.
- class wrenfold.ast.AssignOutputMatrix#
Assign a matrix to an output argument.
- __init__(*args, **kwargs)#
- property arg#
Destination argument.
- property value#
ConstructMatrix
specifying values to assign.
- class wrenfold.ast.AssignOutputScalar#
Assign a scalar to an output argument.
- __init__(*args, **kwargs)#
- property arg#
Destination argument.
- property value#
Scalar value to assign.
- class wrenfold.ast.AssignOutputStruct#
Assign a struct to an output argument.
- __init__(*args, **kwargs)#
- property arg#
Destination argument.
- property value#
ConstructCustomType
specifying values to assign.
- class wrenfold.ast.AssignTemporary#
Assignment to a temporary variable:
left = right
- __init__(*args, **kwargs)#
- property left#
Name of the variable to which the assignment applies.
- property right#
The value being assigned.
- class wrenfold.ast.AstSpan#
Stores a sequence of AST elements.
- __getitem__(self: wrenfold.ast.AstSpan, index: int) Union[wf::ast::add, wf::ast::assign_temporary, wf::ast::assign_output_matrix, wf::ast::assign_output_scalar, wf::ast::assign_output_struct, wf::ast::boolean_literal, wf::ast::branch, wf::ast::call_external_function, wf::ast::call_std_function, wf::ast::cast, wf::ast::comment, wf::ast::compare, wf::ast::construct_custom_type, wf::ast::construct_matrix, wf::ast::declaration, wf::ast::divide, wf::ast::float_literal, wf::ast::get_argument, wf::ast::get_field, wf::ast::get_matrix_element, wf::ast::integer_literal, wf::ast::multiply, wf::ast::negate, wf::ast::optional_output_branch, wf::ast::parenthetical, wf::ast::special_constant, wf::ast::return_object, wf::ast::variable_ref] #
Array access operator.
- __init__(*args, **kwargs)#
- __iter__(self: wrenfold.ast.AstSpan) Iterator #
- __len__(self: wrenfold.ast.AstSpan) int #
- class wrenfold.ast.BooleanLiteral#
Emit a boolean literal constant.
- __init__(*args, **kwargs)#
- property value#
Value of the constant (True or False).
- class wrenfold.ast.Branch#
Emit an if-else statement:
if (condition) { ... } else { ... }
- __init__(*args, **kwargs)#
- property condition#
Condition governing which branch to take.
- property else_branch#
Statements that evaluate when the condition is false.
- property if_branch#
Statements that evaluate when the condition is true.
- class wrenfold.ast.CallExternalFunction#
Invoke a user-provided external function.
- __init__(*args, **kwargs)#
- class wrenfold.ast.CallStdFunction#
Invoke a standard library math function.
- __init__(*args, **kwargs)#
- property args#
Arguments to the function.
- property function#
The function being invoked.
- class wrenfold.ast.Cast#
Cast a numerical value.
- __init__(*args, **kwargs)#
- property arg#
Source value being casted.
- property destination_type#
The destination numerical type.
- class wrenfold.ast.Comment#
Emit a comment block.
- __init__(*args, **kwargs)#
- property content#
Comment as a single string.
- split_lines(self: wrenfold.ast.Comment) List[str] #
Split comment by newlines and return a list of strings, one per line.
- class wrenfold.ast.Compare#
Compare two operands.
- __init__(*args, **kwargs)#
- property left#
The left operand.
- property operation#
Relational operation.
- property right#
The right operand.
- class wrenfold.ast.ConstructCustomType#
Construct an instance of a user-provided type.
- __init__(*args, **kwargs)#
- get_field_value(self: wrenfold.ast.ConstructCustomType, name: str) wrenfold.ast.Add | wrenfold.ast.AssignTemporary | wrenfold.ast.AssignOutputMatrix | wrenfold.ast.AssignOutputScalar | wrenfold.ast.AssignOutputStruct | wrenfold.ast.BooleanLiteral | wrenfold.ast.Branch | wrenfold.ast.CallExternalFunction | wrenfold.ast.CallStdFunction | wrenfold.ast.Cast | wrenfold.ast.Comment | wrenfold.ast.Compare | wrenfold.ast.ConstructCustomType | wrenfold.ast.ConstructMatrix | wrenfold.ast.Declaration | wrenfold.ast.Divide | wrenfold.ast.FloatLiteral | wrenfold.ast.GetArgument | wrenfold.ast.GetField | wrenfold.ast.GetMatrixElement | wrenfold.ast.IntegerLiteral | wrenfold.ast.Multiply | wrenfold.ast.Negate | wrenfold.ast.OptionalOutputBranch | wrenfold.ast.Parenthetical | wrenfold.ast.SpecialConstant | wrenfold.ast.ReturnObject | wrenfold.ast.VariableRef | None #
Given the name of a field, return the statement being assigned to it (or None if the field does not exist).
- property type#
Instance of
wrenfold.codegen.CustomType
specifying which type to instantiate.
- class wrenfold.ast.ConstructMatrix#
Construct a matrix from a list of statements.
- __init__(*args, **kwargs)#
- property args#
Contents of the matrix, in row-major order.
- property type#
Describe dimensions of the matrix.
- class wrenfold.ast.Declaration#
Declare a variable, and optionally assign it a value:
name: type = value
- __init__(*args, **kwargs)#
- property name#
Name of the variable.
- property type#
Type of the variable.
- property value#
Optional value with which the variable should be initialized.
- class wrenfold.ast.Divide#
Division operation:
left / right
- __init__(*args, **kwargs)#
- property left#
Left operand (numerator).
- property right#
Right operand (denominator).
- class wrenfold.ast.FloatLiteral#
Emit a floating-point literal constant.
- __init__(*args, **kwargs)#
- property value#
Value of the constant.
- class wrenfold.ast.FunctionDefinition#
Define a generated function. This is the top level object of the emitted syntax tree.
- __init__(*args, **kwargs)#
- property body#
Statements that make up the body of the function.
- property signature#
Function signature.
- class wrenfold.ast.FunctionSignature#
Emit the signature of a generated function:
name(... arguments ...) -> return_annotation
- __init__(*args, **kwargs)#
- property arguments#
List of arguments.
- property name#
Name of the function.
- property return_type#
Return type of the function.
- class wrenfold.ast.GetArgument#
Reference an argument to the generated function.
- __init__(*args, **kwargs)#
- property argument#
Argument being accessed.
- class wrenfold.ast.GetField#
Reference a field on a struct:
arg.field_name
- __init__(*args, **kwargs)#
- property arg#
Operand from which we wish to retrieve the specified field.
- property field_name#
Name of the field being accessed.
- property struct_type#
Type of the struct.
- class wrenfold.ast.GetMatrixElement#
Retrieve a value from a matrix:
arg[row, col]
- __init__(*args, **kwargs)#
- property arg#
Operand matrix.
- property col#
Column to access.
- property row#
Row to access.
- class wrenfold.ast.IntegerLiteral#
Emit an integer literal constant.
- __init__(*args, **kwargs)#
- property value#
Value of the constant.
- class wrenfold.ast.Multiply#
Multiplication operation:
args[0] * args[1] * ...
- __init__(*args, **kwargs)#
- property args#
Operands to the multiplication. There will always be more than one.
- class wrenfold.ast.Negate#
Negation operation:
-arg
- __init__(*args, **kwargs)#
- property arg#
Operand being negated.
- class wrenfold.ast.OptionalOutputBranch#
Conditionally assign values to an optional output argument:
if (<argument exists>) { ... }
- __init__(*args, **kwargs)#
- property argument#
An optional output argument.
- property statements#
Statements that are relevant when the optional argument is present.
- class wrenfold.ast.Parenthetical#
Wrap an expression in parentheses.
- __init__(*args, **kwargs)#
- property contents#
Value that should be wrapped in parentheses.
- class wrenfold.ast.ReturnObject#
Return a value from the function.
- __init__(*args, **kwargs)#
- property value#
Value or object being returned.