l0_ast.py

l0_ast.py

Module: l0_ast

Source: compiler/stage1_py/l0_ast.py Language: Python

Symbols

Namespace l0_ast

Class l0_ast::Span

Represents a range of text in a source file.

Member Data l0_ast.Span.start_line

1
int start_line

Member Data l0_ast.Span.start_column

1
int start_column

Member Data l0_ast.Span.end_line

1
int end_line

Member Data l0_ast.Span.end_column

1
int end_column

Class l0_ast::Node

Base class for all AST nodes.

Member Data l0_ast.Node.span

1
Optional span

Class l0_ast::TypeRef

Reference to a type in the source code.

Member Data l0_ast.TypeRef.name

1
str name

Member Data l0_ast.TypeRef.pointer_depth

1
int pointer_depth

Member Data l0_ast.TypeRef.is_nullable

1
bool is_nullable

Member Data l0_ast.TypeRef.module_path

1
Optional module_path

Member Data l0_ast.TypeRef.name_qualifier

1
Optional name_qualifier

Class l0_ast::Import

An import declaration.

Member Data l0_ast.Import.name

1
str name

Class l0_ast::TopLevelDecl

Base class for top-level declarations (functions, structs, etc.).

Class l0_ast::Param

A function parameter declaration.

Member Data l0_ast.Param.name

1
str name

Member Data l0_ast.Param.type

1
TypeRef type

Class l0_ast::FuncDecl

A function declaration.

Member Data l0_ast.FuncDecl.name

1
str name

Member Data l0_ast.FuncDecl.params

1
List params

Member Data l0_ast.FuncDecl.return_type

1
TypeRef return_type

Member Data l0_ast.FuncDecl.body

1
str body

Member Data l0_ast.FuncDecl.is_extern

1
bool is_extern

Class l0_ast::FieldDecl

A field declaration within a struct.

Member Data l0_ast.FieldDecl.name

1
str name

Member Data l0_ast.FieldDecl.type

1
TypeRef type

Class l0_ast::StructDecl

A struct declaration.

Member Data l0_ast.StructDecl.name

1
str name

Member Data l0_ast.StructDecl.fields

1
List fields

Class l0_ast::EnumVariant

A variant declaration within an enum.

Member Data l0_ast.EnumVariant.name

1
str name

Member Data l0_ast.EnumVariant.fields

1
List fields

Class l0_ast::EnumDecl

An enum declaration.

Member Data l0_ast.EnumDecl.name

1
str name

Member Data l0_ast.EnumDecl.variants

1
List variants

Class l0_ast::TypeAliasDecl

A type alias declaration.

Member Data l0_ast.TypeAliasDecl.name

1
str name

Member Data l0_ast.TypeAliasDecl.target

1
TypeRef target

Class l0_ast::LetDecl

A top-level ‘let’ declaration.

Member Data l0_ast.LetDecl.name

1
str name

Member Data l0_ast.LetDecl.type

1
Optional type

Member Data l0_ast.LetDecl.value

1
str value

Class l0_ast::Module

A complete L0 module.

Member Data l0_ast.Module.name

1
str name

Member Data l0_ast.Module.imports

1
List imports

Member Data l0_ast.Module.decls

1
List decls

Member Data l0_ast.Module.filename

1
Optional filename

Class l0_ast::Stmt

Base class for all statements.

Class l0_ast::Block

A block containing a sequence of statements.

Member Data l0_ast.Block.stmts

1
List stmts

Class l0_ast::LetStmt

A local variable declaration statement.

Member Data l0_ast.LetStmt.name

1
str name

Member Data l0_ast.LetStmt.type

1
Optional type

Member Data l0_ast.LetStmt.value

1
str value

Class l0_ast::AssignStmt

An assignment statement.

Member Data l0_ast.AssignStmt.target

1
str target

Member Data l0_ast.AssignStmt.value

1
str value

Class l0_ast::ExprStmt

A statement consisting of a single expression.

Member Data l0_ast.ExprStmt.expr

1
str expr

Class l0_ast::IfStmt

An if-else statement.

Member Data l0_ast.IfStmt.cond

1
str cond

Member Data l0_ast.IfStmt.then_stmt

1
Stmt then_stmt

Member Data l0_ast.IfStmt.else_stmt

1
Optional else_stmt

Class l0_ast::WhileStmt

A while loop statement.

Member Data l0_ast.WhileStmt.cond

1
str cond

Member Data l0_ast.WhileStmt.body

1
Block body

Class l0_ast::ForStmt

A for loop statement.

Member Data l0_ast.ForStmt.init

1
Optional init

Member Data l0_ast.ForStmt.cond

1
Optional cond

Member Data l0_ast.ForStmt.update

1
Optional update

Member Data l0_ast.ForStmt.body

1
Block body

Class l0_ast::ReturnStmt

A return statement.

Member Data l0_ast.ReturnStmt.value

1
Optional value

Class l0_ast::DropStmt

An explicit drop statement for manual memory/resource release.

Member Data l0_ast.DropStmt.name

1
str name

Class l0_ast::MatchArm

A single arm in a match statement.

Member Data l0_ast.MatchArm.pattern

1
str pattern

Member Data l0_ast.MatchArm.body

1
Block body

Class l0_ast::MatchStmt

A match statement for pattern matching.

Member Data l0_ast.MatchStmt.expr

1
str expr

Member Data l0_ast.MatchStmt.arms

1
List arms

Class l0_ast::WithItem

An item in a with statement.

Member Data l0_ast.WithItem.init

1
Stmt init

Member Data l0_ast.WithItem.cleanup

1
Optional cleanup

Class l0_ast::WithStmt

A with statement for RAII-style resource management.

Member Data l0_ast.WithStmt.items

1
List items

Member Data l0_ast.WithStmt.body

1
Block body

Member Data l0_ast.WithStmt.cleanup_body

1
Optional cleanup_body

Class l0_ast::CaseArm

A single arm in a case statement.

Member Data l0_ast.CaseArm.literal

1
str literal

Member Data l0_ast.CaseArm.body

1
Stmt body

Class l0_ast::CaseElse

The else arm of a case statement.

Member Data l0_ast.CaseElse.body

1
Stmt body

Class l0_ast::CaseStmt

A case statement (switch-like).

Member Data l0_ast.CaseStmt.expr

1
str expr

Member Data l0_ast.CaseStmt.arms

1
List arms

Member Data l0_ast.CaseStmt.else_arm

1
Optional else_arm

Class l0_ast::BreakStmt

A break statement.

Class l0_ast::ContinueStmt

A continue statement.

Class l0_ast::Pattern

Base class for match patterns.

Class l0_ast::WildcardPattern

A wildcard pattern (‘_’) that matches anything.

Class l0_ast::VariantPattern

A pattern that matches an enum variant.

Member Data l0_ast.VariantPattern.name

1
str name

Member Data l0_ast.VariantPattern.vars

1
List vars

Member Data l0_ast.VariantPattern.module_path

1
Optional module_path

Member Data l0_ast.VariantPattern.name_qualifier

1
Optional name_qualifier

Class l0_ast::Expr

Base class for all expressions.

Class l0_ast::IntLiteral

An integer literal expression.

Member Data l0_ast.IntLiteral.value

1
int value

Class l0_ast::ByteLiteral

A byte literal expression.

Member Data l0_ast.ByteLiteral.value

1
str value

Class l0_ast::StringLiteral

A string literal expression.

Member Data l0_ast.StringLiteral.value

1
str value

Class l0_ast::BoolLiteral

A boolean literal expression.

Member Data l0_ast.BoolLiteral.value

1
bool value

Class l0_ast::NullLiteral

A null literal expression.

Class l0_ast::VarRef

A variable reference expression.

Member Data l0_ast.VarRef.name

1
str name

Member Data l0_ast.VarRef.module_path

1
Optional module_path

Member Data l0_ast.VarRef.name_qualifier

1
Optional name_qualifier

Class l0_ast::NewExpr

A heap allocation or constructor expression.

Member Data l0_ast.NewExpr.type_ref

1
TypeRef type_ref

Member Data l0_ast.NewExpr.args

1
List args

Class l0_ast::UnaryOp

A unary operator expression.

Member Data l0_ast.UnaryOp.op

1
str op

Member Data l0_ast.UnaryOp.operand

1
Expr operand

Class l0_ast::BinaryOp

A binary operator expression.

Member Data l0_ast.BinaryOp.op

1
str op

Member Data l0_ast.BinaryOp.left

1
Expr left

Member Data l0_ast.BinaryOp.right

1
Expr right

Class l0_ast::CallExpr

A function or method call expression.

Member Data l0_ast.CallExpr.callee

1
Expr callee

Member Data l0_ast.CallExpr.args

1
List args

Class l0_ast::IndexExpr

An array indexing expression.

Member Data l0_ast.IndexExpr.array

1
Expr array

Member Data l0_ast.IndexExpr.index

1
Expr index

Class l0_ast::FieldAccessExpr

A field access expression.

Member Data l0_ast.FieldAccessExpr.obj

1
Expr obj

Member Data l0_ast.FieldAccessExpr.field

1
str field

Class l0_ast::ParenExpr

A parenthesized expression.

Member Data l0_ast.ParenExpr.inner

1
Expr inner

Class l0_ast::CastExpr

A type cast expression.

Member Data l0_ast.CastExpr.expr

1
Expr expr

Member Data l0_ast.CastExpr.target_type

1
TypeRef target_type

Class l0_ast::TryExpr

A try expression for error handling.

Member Data l0_ast.TryExpr.expr

1
Expr expr

Class l0_ast::TypeExpr

A type used in an expression position.

Member Data l0_ast.TypeExpr.type_ref

1
TypeRef type_ref