Rust Source Backend¶
Rust source backend exports for CrossGL Translator.
Rust AST Node definitions
- class crosstl.backend.Rust.RustAst.ArrayNode(elements, size=None)[source]¶
Bases:
ASTNodeNode representing an array literal
- class crosstl.backend.Rust.RustAst.AssociatedTypeNode(name, bounds=None, default_type=None, where_clauses=None)[source]¶
Bases:
ASTNodeNode representing a Rust trait associated type declaration.
- class crosstl.backend.Rust.RustAst.BlockNode(statements, returns_value=False)[source]¶
Bases:
ASTNodeNode representing a block expression
- class crosstl.backend.Rust.RustAst.ConstNode(name, const_type, value, visibility=None)[source]¶
Bases:
ASTNodeNode representing a const declaration
- class crosstl.backend.Rust.RustAst.DereferenceNode(expression)[source]¶
Bases:
ASTNodeNode representing a dereference (*)
- class crosstl.backend.Rust.RustAst.EnumNode(name, variants, attributes=None, visibility=None, generics=None, where_clauses=None)[source]¶
Bases:
ASTNodeNode representing a Rust enum declaration.
- class crosstl.backend.Rust.RustAst.EnumVariantNode(name, kind='unit', fields=None, value=None, attributes=None)[source]¶
Bases:
ASTNodeNode representing one Rust enum variant.
- class crosstl.backend.Rust.RustAst.ForNode(pattern, iterable, body)[source]¶
Bases:
ASTNodeNode representing a Rust for-in loop
- class crosstl.backend.Rust.RustAst.FunctionNode(return_type, name, params, body, attributes=None, visibility=None, generics=None, where_clauses=None)[source]¶
Bases:
ASTNodeNode representing a Rust function.
- class crosstl.backend.Rust.RustAst.GenericParameterNode(name, bounds=None, default=None)[source]¶
Bases:
ASTNodeNode representing a generic parameter
- class crosstl.backend.Rust.RustAst.ImplNode(struct_name, methods, trait_name=None, generics=None, where_clauses=None, type_aliases=None)[source]¶
Bases:
ASTNodeNode representing an impl block
- class crosstl.backend.Rust.RustAst.LetNode(name, value, var_type=None, is_mutable=False)[source]¶
Bases:
ASTNodeNode representing a let binding
- class crosstl.backend.Rust.RustAst.LoopNode(body, label=None)[source]¶
Bases:
ASTNodeNode representing an infinite loop
- class crosstl.backend.Rust.RustAst.MatchArmNode(pattern, guard, body)[source]¶
Bases:
ASTNodeNode representing a match arm
- class crosstl.backend.Rust.RustAst.MatchNode(expression, arms)[source]¶
Bases:
ASTNodeNode representing a match expression
- class crosstl.backend.Rust.RustAst.RangeNode(start, end, inclusive=False, step=None)[source]¶
Bases:
ASTNodeNode representing a range expression
- class crosstl.backend.Rust.RustAst.ReferenceNode(expression, is_mutable=False)[source]¶
Bases:
ASTNodeNode representing a reference (&)
- class crosstl.backend.Rust.RustAst.ShaderNode(structs=None, functions=None, global_variables=None, impl_blocks=None, use_statements=None, traits=None, enums=None, type_aliases=None)[source]¶
Bases:
ASTNodeRoot node representing a Rust module/program.
- class crosstl.backend.Rust.RustAst.StaticNode(name, static_type, value, is_mutable=False, visibility=None)[source]¶
Bases:
ASTNodeNode representing a static variable
- class crosstl.backend.Rust.RustAst.StructInitializationNode(struct_name, fields)[source]¶
Bases:
ASTNodeNode representing struct initialization
- class crosstl.backend.Rust.RustAst.StructNode(name, members, attributes=None, visibility=None, generics=None)[source]¶
Bases:
ASTNodeNode representing a Rust struct with visibility and attributes.
- class crosstl.backend.Rust.RustAst.TraitNode(name, methods, generics=None, visibility=None, where_clauses=None, associated_types=None, *args, **kwargs)[source]¶
Bases:
ASTNodeNode representing a trait definition
- class crosstl.backend.Rust.RustAst.TupleNode(elements)[source]¶
Bases:
ASTNodeNode representing a tuple
- class crosstl.backend.Rust.RustAst.TypeAliasNode(name, alias_type, generics=None, visibility=None, where_clauses=None, attributes=None)[source]¶
Bases:
ASTNodeNode representing a Rust type alias declaration.
- class crosstl.backend.Rust.RustAst.UseNode(path, alias=None, items=None)[source]¶
Bases:
ASTNodeNode representing a use statement
Lexer for importing Rust source into CrossGL Translator.
- class crosstl.backend.Rust.RustLexer.Lexer(input_str)[source]¶
Bases:
objectCompatibility wrapper around RustLexer
- class crosstl.backend.Rust.RustLexer.RustLexer(code)[source]¶
Bases:
objectTokenize Rust source for the Rust backend parser.
- classmethod from_file(filepath, chunk_size=8192)[source]¶
Create a lexer instance from a Rust source file.
- Return type:
- class crosstl.backend.Rust.RustLexer.Token(token_type, text)[source]¶
Bases:
objectSimple typed token object used by Rust compatibility paths.
- class crosstl.backend.Rust.RustLexer.TokenType(value)[source]¶
Bases:
EnumToken names emitted by the Rust source lexer.
Parser for Rust source AST construction.
- class crosstl.backend.Rust.RustParser.RustParser(tokens)[source]¶
Bases:
objectParse Rust tokens into the Rust backend shader AST.
Reverse code generator that emits CrossGL from Rust AST nodes.