Shared Backend AST¶
Common AST node definitions shared across backends.
- class crosstl.backend.common_ast.ASTNode[source]¶
Bases:
objectBase class for backend AST nodes produced by native source parsers.
- class crosstl.backend.common_ast.ArrayAccessNode(array, index)[source]¶
Bases:
ASTNodeNode representing array access
- class crosstl.backend.common_ast.AssignmentNode(left, right, operator='=')[source]¶
Bases:
ASTNodeNode representing an assignment operation
- class crosstl.backend.common_ast.AttributeNode(name, args=None, arguments=None)[source]¶
Bases:
ASTNodeAttributes/annotations.
- class crosstl.backend.common_ast.BinaryOpNode(left, op, right)[source]¶
Bases:
ASTNodeNode representing a binary operation
- class crosstl.backend.common_ast.BreakNode(*args, **kwargs)[source]¶
Bases:
ASTNodeNode representing a break statement.
- class crosstl.backend.common_ast.CallNode(callee, args)[source]¶
Bases:
ASTNodeNode representing a call on a callee expression
- class crosstl.backend.common_ast.CaseNode(value, body=None, statements=None)[source]¶
Bases:
ASTNodeNode representing a case in a switch statement.
- class crosstl.backend.common_ast.CastNode(target_type, expression)[source]¶
Bases:
ASTNodeNode representing a type cast
- class crosstl.backend.common_ast.ConstantBufferNode(name, members)[source]¶
Bases:
ASTNodeNode representing constant buffer
- class crosstl.backend.common_ast.ContinueNode(*args, **kwargs)[source]¶
Bases:
ASTNodeNode representing a continue statement.
- class crosstl.backend.common_ast.DeleteNode(expression, is_array=False)[source]¶
Bases:
ASTNodeNode representing a C++ delete expression statement
- class crosstl.backend.common_ast.DesignatedInitializerNode(designators=None, value=None)[source]¶
Bases:
ASTNodeNode representing C99-style designated initializer entries.
- class crosstl.backend.common_ast.DiscardNode(*args, **kwargs)[source]¶
Bases:
ASTNodeNode representing a discard statement
- class crosstl.backend.common_ast.DoWhileNode(body, condition)[source]¶
Bases:
ASTNodeNode representing a do-while loop
- class crosstl.backend.common_ast.EnumNode(name, members)[source]¶
Bases:
ASTNodeNode representing an enum declaration
- class crosstl.backend.common_ast.ForNode(init, condition, update, body)[source]¶
Bases:
ASTNodeNode representing a for loop
- class crosstl.backend.common_ast.FunctionCallNode(name, args)[source]¶
Bases:
ASTNodeNode representing a function call
- class crosstl.backend.common_ast.FunctionNode(return_type, name, params, body, qualifiers=None, attributes=None, *args, **kwargs)[source]¶
Bases:
ASTNodeNode representing a function declaration.
- class crosstl.backend.common_ast.IfNode(condition=None, if_body=None, else_body=None, if_chain=None, else_if_chain=None)[source]¶
Bases:
ASTNodeNode representing an if statement.
- class crosstl.backend.common_ast.InitializerListNode(elements=None)[source]¶
Bases:
ASTNodeNode representing C-style brace initializer lists.
- class crosstl.backend.common_ast.MemberAccessNode(object, member, is_pointer=False)[source]¶
Bases:
ASTNodeNode representing member access (dot or arrow operator)
- class crosstl.backend.common_ast.MethodCallNode(object, method, args)[source]¶
Bases:
ASTNodeNode representing a method call on an object
- class crosstl.backend.common_ast.NewNode(target_type, size=None, args=None, is_array=False)[source]¶
Bases:
ASTNodeNode representing a C++ new expression
- class crosstl.backend.common_ast.PostfixOpNode(operand, op)[source]¶
Bases:
ASTNodeNode representing a postfix operation (e.g., i++, i–)
- class crosstl.backend.common_ast.PreprocessorNode(directive, content)[source]¶
Bases:
ASTNodeNode representing preprocessor directives
- class crosstl.backend.common_ast.RangeForNode(vtype, name, iterable, body)[source]¶
Bases:
ASTNodeNode representing a C++ range-based for loop
- class crosstl.backend.common_ast.ReturnNode(value=None)[source]¶
Bases:
ASTNodeNode representing a return statement
- class crosstl.backend.common_ast.ShaderNode(includes=None, functions=None, structs=None, global_variables=None, kernels=None, *args, **kwargs)[source]¶
Bases:
ASTNodeRoot node representing a complete program.
- class crosstl.backend.common_ast.StaticAssertNode(condition, message=None)[source]¶
Bases:
ASTNodeNode representing a static_assert
- class crosstl.backend.common_ast.StructNode(name, members, attributes=None)[source]¶
Bases:
ASTNodeNode representing a struct declaration.
- class crosstl.backend.common_ast.SwitchNode(expression, cases, default_case=None, default=None)[source]¶
Bases:
ASTNodeNode representing a switch statement.
- class crosstl.backend.common_ast.SyncNode(sync_type, args=None, arguments=None)[source]¶
Bases:
ASTNodeNode representing synchronization operations.
- class crosstl.backend.common_ast.TernaryOpNode(condition, true_expr, false_expr)[source]¶
Bases:
ASTNodeNode representing a ternary conditional operator
- class crosstl.backend.common_ast.TextureSampleNode(texture, sampler, coordinates, lod=None)[source]¶
Bases:
ASTNodeNode representing texture sampling
- class crosstl.backend.common_ast.ThreadgroupSyncNode[source]¶
Bases:
ASTNodeNode representing threadgroup synchronization
- class crosstl.backend.common_ast.TypeAliasNode(alias_type, name)[source]¶
Bases:
ASTNodeNode representing a typedef/alias
- class crosstl.backend.common_ast.UnaryOpNode(op, operand)[source]¶
Bases:
ASTNodeNode representing a unary operation
- class crosstl.backend.common_ast.VariableNode(vtype, name, value=None, qualifiers=None, attributes=None, is_const=False, **kwargs)[source]¶
Bases:
ASTNodeNode representing a variable declaration