package core:odin/ast
Index
Types (100)
- Any_Expr
- Any_Node
- Any_Stmt
- Array_Type
- Assign_Stmt
- Attribute
- Auto_Cast
- Bad_Decl
- Bad_Expr
- Bad_Stmt
- Basic_Directive
- Basic_Lit
- Binary_Expr
- Bit_Field_Field
- Bit_Field_Type
- Bit_Set_Type
- Block_Stmt
- Branch_Stmt
- Call_Expr
- Case_Clause
- Comment_Group
- Comp_Lit
- Decl
- Defer_Stmt
- Deref_Expr
- Distinct_Type
- Dynamic_Array_Type
- Ellipsis
- Empty_Stmt
- Enum_Type
- Expr
- Expr_Stmt
- Field
- Field_Flag
- Field_Flags
- Field_List
- Field_Value
- File
- For_Stmt
- Foreign_Block_Decl
- Foreign_Import_Decl
- Helper_Type
- Ident
- If_Stmt
- Implicit
- Implicit_Selector_Expr
- Import_Decl
- Index_Expr
- Inline_Asm_Dialect
- Inline_Asm_Expr
- Inline_Range_Stmt
- Map_Type
- Matrix_Index_Expr
- Matrix_Type
- Multi_Pointer_Type
- Node
- Node_State_Flag
- Node_State_Flags
- Or_Branch_Expr
- Or_Else_Expr
- Or_Return_Expr
- Package
- Package_Decl
- Package_Kind
- Paren_Expr
- Pointer_Type
- Poly_Type
- Proc_Calling_Convention
- Proc_Calling_Convention_Extra
- Proc_Group
- Proc_Inlining
- Proc_Lit
- Proc_Tag
- Proc_Tags
- Proc_Type
- Range_Stmt
- Relative_Type
- Return_Stmt
- Selector_Call_Expr
- Selector_Expr
- Slice_Expr
- Stmt
- Struct_Type
- Switch_Stmt
- Tag_Expr
- Tag_Stmt
- Ternary_If_Expr
- Ternary_When_Expr
- Type_Assertion
- Type_Cast
- Type_Switch_Stmt
- Typeid_Type
- Unary_Expr
- Undef
- Union_Type
- Union_Type_Kind
- Using_Stmt
- Value_Decl
- Visitor
- When_Stmt
Variables (2)
Types
Any_Expr ¶
Any_Expr :: union { ^Bad_Expr, ^Ident, ^Implicit, ^Undef, ^Basic_Lit, ^Basic_Directive, ^Ellipsis, ^Proc_Lit, ^Comp_Lit, ^Tag_Expr, ^Unary_Expr, ^Binary_Expr, ^Paren_Expr, ^Selector_Expr, ^Implicit_Selector_Expr, ^Selector_Call_Expr, ^Index_Expr, ^Deref_Expr, ^Slice_Expr, ^Matrix_Index_Expr, ^Call_Expr, ^Field_Value, ^Ternary_If_Expr, ^Ternary_When_Expr, ^Or_Else_Expr, ^Or_Return_Expr, ^Or_Branch_Expr, ^Type_Assertion, ^Type_Cast, ^Auto_Cast, ^Inline_Asm_Expr, ^Proc_Group, ^Typeid_Type, ^Helper_Type, ^Distinct_Type, ^Poly_Type, ^Proc_Type, ^Pointer_Type, ^Multi_Pointer_Type, ^Array_Type, ^Dynamic_Array_Type, ^Struct_Type, ^Union_Type, ^Enum_Type, ^Bit_Set_Type, ^Map_Type, ^Relative_Type, ^Matrix_Type, ^Bit_Field_Type, }
Any_Node ¶
Any_Node :: union { ^Package, ^File, ^Comment_Group, ^Bad_Expr, ^Ident, ^Implicit, ^Undef, ^Basic_Lit, ^Basic_Directive, ^Ellipsis, ^Proc_Lit, ^Comp_Lit, ^Tag_Expr, ^Unary_Expr, ^Binary_Expr, ^Paren_Expr, ^Selector_Expr, ^Implicit_Selector_Expr, ^Selector_Call_Expr, ^Index_Expr, ^Deref_Expr, ^Slice_Expr, ^Matrix_Index_Expr, ^Call_Expr, ^Field_Value, ^Ternary_If_Expr, ^Ternary_When_Expr, ^Or_Else_Expr, ^Or_Return_Expr, ^Or_Branch_Expr, ^Type_Assertion, ^Type_Cast, ^Auto_Cast, ^Inline_Asm_Expr, ^Proc_Group, ^Typeid_Type, ^Helper_Type, ^Distinct_Type, ^Poly_Type, ^Proc_Type, ^Pointer_Type, ^Multi_Pointer_Type, ^Array_Type, ^Dynamic_Array_Type, ^Struct_Type, ^Union_Type, ^Enum_Type, ^Bit_Set_Type, ^Map_Type, ^Relative_Type, ^Matrix_Type, ^Bit_Field_Type, ^Bad_Stmt, ^Empty_Stmt, ^Expr_Stmt, ^Tag_Stmt, ^Assign_Stmt, ^Block_Stmt, ^If_Stmt, ^When_Stmt, ^Return_Stmt, ^Defer_Stmt, ^For_Stmt, ^Range_Stmt, ^Inline_Range_Stmt, ^Case_Clause, ^Switch_Stmt, ^Type_Switch_Stmt, ^Branch_Stmt, ^Using_Stmt, ^Bad_Decl, ^Value_Decl, ^Package_Decl, ^Import_Decl, ^Foreign_Block_Decl, ^Foreign_Import_Decl, ^Attribute, ^Field, ^Field_List, ^Bit_Field_Field, }
Any_Stmt ¶
Any_Stmt :: union { ^Bad_Stmt, ^Empty_Stmt, ^Expr_Stmt, ^Tag_Stmt, ^Assign_Stmt, ^Block_Stmt, ^If_Stmt, ^When_Stmt, ^Return_Stmt, ^Defer_Stmt, ^For_Stmt, ^Range_Stmt, ^Inline_Range_Stmt, ^Case_Clause, ^Switch_Stmt, ^Type_Switch_Stmt, ^Branch_Stmt, ^Using_Stmt, ^Bad_Decl, ^Value_Decl, ^Package_Decl, ^Import_Decl, ^Foreign_Block_Decl, ^Foreign_Import_Decl, }
Array_Type ¶
Array_Type :: struct { using node: Expr, open: odin_tokenizer.Pos, tag: ^Expr, len: ^Expr, // Unary_Expr node for [?]T array types, nil for slice types close: odin_tokenizer.Pos, elem: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Assign_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Attribute ¶
Attribute :: struct { using node: Node, tok: odin_tokenizer.Token_Kind, open: odin_tokenizer.Pos, elems: []^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Auto_Cast ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Bad_Decl ¶
Bad_Decl :: struct { using node: Decl, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Bad_Expr ¶
Bad_Expr :: struct { using node: Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Bad_Stmt ¶
Bad_Stmt :: struct { using node: Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Basic_Directive ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Basic_Lit ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Binary_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Bit_Field_Field ¶
Bit_Field_Field :: struct { using node: Node, docs: ^Comment_Group, name: ^Expr, type: ^Expr, bit_size: ^Expr, tag: odin_tokenizer.Token, comments: ^Comment_Group, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Bit_Field_Type ¶
Bit_Field_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, backing_type: ^Expr, open: odin_tokenizer.Pos, fields: []^Bit_Field_Field, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Bit_Set_Type ¶
Bit_Set_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, open: odin_tokenizer.Pos, elem: ^Expr, underlying: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Block_Stmt ¶
Block_Stmt :: struct { using node: Stmt, label: ^Expr, open: odin_tokenizer.Pos, stmts: []^Stmt, close: odin_tokenizer.Pos, uses_do: bool, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Branch_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Call_Expr ¶
Call_Expr :: struct { using node: Expr, inlining: Proc_Inlining, expr: ^Expr, open: odin_tokenizer.Pos, args: []^Expr, ellipsis: odin_tokenizer.Token, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Case_Clause ¶
Case_Clause :: struct { using node: Stmt, case_pos: odin_tokenizer.Pos, list: []^Expr, terminator: odin_tokenizer.Token, body: []^Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Comment_Group ¶
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Comp_Lit ¶
Comp_Lit :: struct { using node: Expr, type: ^Expr, open: odin_tokenizer.Pos, elems: []^Expr, close: odin_tokenizer.Pos, tag: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Decl ¶
Decl :: struct { using decl_base: Stmt, }
Related Procedures With Parameters
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Defer_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Deref_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Distinct_Type ¶
Distinct_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, type: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Dynamic_Array_Type ¶
Dynamic_Array_Type :: struct { using node: Expr, tag: ^Expr, open: odin_tokenizer.Pos, dynamic_pos: odin_tokenizer.Pos, close: odin_tokenizer.Pos, elem: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Ellipsis ¶
Ellipsis :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, expr: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Empty_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Enum_Type ¶
Enum_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, base_type: ^Expr, open: odin_tokenizer.Pos, fields: []^Expr, close: odin_tokenizer.Pos, is_using: bool, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Expr ¶
Related Procedures With Parameters
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Expr_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Field ¶
Field :: struct { using node: Node, docs: ^Comment_Group, names: []^Expr, // Could be polymorphic type: ^Expr, default_value: ^Expr, tag: odin_tokenizer.Token, flags: Field_Flags, comment: ^Comment_Group, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Field_Flag ¶
Field_Flag :: enum int { Invalid, Unknown, Ellipsis, Using, No_Alias, C_Vararg, Const, Any_Int, Subtype, By_Ptr, No_Broadcast, No_Capture, Results, Tags, Default_Parameters, Typeid_Token, }
Field_List ¶
Field_List :: struct { using node: Node, open: odin_tokenizer.Pos, list: []^Field, close: odin_tokenizer.Pos, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Field_Value ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
File ¶
File :: struct { using node: Node, id: int, pkg: ^Package, fullpath: string, src: string, tags: [dynamic]odin_tokenizer.Token, docs: ^Comment_Group, pkg_decl: ^Package_Decl, pkg_token: odin_tokenizer.Token, pkg_name: string, decls: [dynamic]^Stmt, imports: [dynamic]^Import_Decl, directive_count: int, comments: [dynamic]^Comment_Group, syntax_warning_count: int, syntax_error_count: int, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
For_Stmt ¶
For_Stmt :: struct { using node: Stmt, label: ^Expr, for_pos: odin_tokenizer.Pos, init: ^Stmt, cond: ^Expr, post: ^Stmt, body: ^Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Foreign_Block_Decl ¶
Foreign_Block_Decl :: struct { using node: Decl, docs: ^Comment_Group, attributes: [dynamic]^Attribute, // dynamic as parsing will add to them lazily tok: odin_tokenizer.Token, foreign_library: ^Expr, body: ^Stmt, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Foreign_Import_Decl ¶
Foreign_Import_Decl :: struct { using node: Decl, docs: ^Comment_Group, attributes: [dynamic]^Attribute, // dynamic as parsing will add to them lazily foreign_tok: odin_tokenizer.Token, import_tok: odin_tokenizer.Token, name: ^Ident, collection_name: string, fullpaths: []^Expr, comment: ^Comment_Group, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Helper_Type ¶
Helper_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, type: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Ident ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
If_Stmt ¶
If_Stmt :: struct { using node: Stmt, label: ^Expr, if_pos: odin_tokenizer.Pos, init: ^Stmt, cond: ^Expr, body: ^Stmt, else_pos: odin_tokenizer.Pos, else_stmt: ^Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Implicit ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Implicit_Selector_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Import_Decl ¶
Import_Decl :: struct { using node: Decl, docs: ^Comment_Group, attributes: [dynamic]^Attribute, // dynamic as parsing will add to them lazily is_using: bool, import_tok: odin_tokenizer.Token, name: odin_tokenizer.Token, relpath: odin_tokenizer.Token, fullpath: string, comment: ^Comment_Group, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Index_Expr ¶
Index_Expr :: struct { using node: Expr, expr: ^Expr, open: odin_tokenizer.Pos, index: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Inline_Asm_Dialect ¶
Inline_Asm_Dialect :: enum u8 { Default = 0, ATT = 1, Intel = 2, }
Inline_Asm_Expr ¶
Inline_Asm_Expr :: struct { using node: Expr, tok: odin_tokenizer.Token, param_types: []^Expr, return_type: ^Expr, has_side_effects: bool, is_align_stack: bool, dialect: Inline_Asm_Dialect, open: odin_tokenizer.Pos, constraints_string: ^Expr, asm_string: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Inline_Range_Stmt ¶
Inline_Range_Stmt :: struct { using node: Stmt, label: ^Expr, inline_pos: odin_tokenizer.Pos, for_pos: odin_tokenizer.Pos, val0: ^Expr, val1: ^Expr, in_pos: odin_tokenizer.Pos, expr: ^Expr, body: ^Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Map_Type ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Matrix_Index_Expr ¶
Matrix_Index_Expr :: struct { using node: Expr, expr: ^Expr, open: odin_tokenizer.Pos, row_index: ^Expr, column_index: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Matrix_Type ¶
Matrix_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, row_count: ^Expr, column_count: ^Expr, elem: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Multi_Pointer_Type ¶
Multi_Pointer_Type :: struct { using node: Expr, open: odin_tokenizer.Pos, pointer: odin_tokenizer.Pos, close: odin_tokenizer.Pos, elem: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Node ¶
Node :: struct { pos: odin_tokenizer.Pos, end: odin_tokenizer.Pos, state_flags: Node_State_Flags, derived: Any_Node, }
Related Procedures With Parameters
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Node_State_Flag ¶
Node_State_Flag :: enum int { Bounds_Check, No_Bounds_Check, Type_Assert, No_Type_Assert, }
Node_State_Flags ¶
Node_State_Flags :: distinct bit_set[Node_State_Flag]
Or_Branch_Expr ¶
Or_Branch_Expr :: struct { using node: Expr, expr: ^Expr, token: odin_tokenizer.Token, label: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Or_Else_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Or_Return_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Package ¶
Package :: struct { using node: Node, kind: Package_Kind, id: int, name: string, fullpath: string, files: map[string]^File, user_data: rawptr, }
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- clone (procedure groups)
- new (procedure groups)
Package_Decl ¶
Package_Decl :: struct { using node: Decl, docs: ^Comment_Group, token: odin_tokenizer.Token, name: string, comment: ^Comment_Group, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Package_Kind ¶
Package_Kind :: enum int { Normal, Runtime, Init, }
Paren_Expr ¶
Paren_Expr :: struct { using node: Expr, open: odin_tokenizer.Pos, expr: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Pointer_Type ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Poly_Type ¶
Poly_Type :: struct { using node: Expr, dollar: odin_tokenizer.Pos, type: ^Ident, specialization: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Proc_Calling_Convention ¶
Proc_Calling_Convention :: union { string, Proc_Calling_Convention_Extra, }
Proc_Calling_Convention_Extra ¶
Proc_Calling_Convention_Extra :: enum i32 { Foreign_Block_Default, }
Proc_Group ¶
Proc_Group :: struct { using node: Expr, tok: odin_tokenizer.Token, open: odin_tokenizer.Pos, args: []^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Proc_Inlining ¶
Proc_Inlining :: enum u32 { None = 0, Inline = 1, No_Inline = 2, }
Proc_Lit ¶
Proc_Lit :: struct { using node: Expr, type: ^Proc_Type, body: ^Stmt, tags: Proc_Tags, inlining: Proc_Inlining, where_token: odin_tokenizer.Token, where_clauses: []^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Proc_Tag ¶
Proc_Tag :: enum int { Bounds_Check, No_Bounds_Check, Optional_Ok, Optional_Allocator_Error, }
Proc_Type ¶
Proc_Type :: struct { using node: Expr, tok: odin_tokenizer.Token, calling_convention: Proc_Calling_Convention, params: ^Field_List, arrow: odin_tokenizer.Pos, results: ^Field_List, tags: Proc_Tags, generic: bool, diverging: bool, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Range_Stmt ¶
Range_Stmt :: struct { using node: Stmt, label: ^Expr, for_pos: odin_tokenizer.Pos, vals: []^Expr, in_pos: odin_tokenizer.Pos, expr: ^Expr, body: ^Stmt, reverse: bool, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Relative_Type ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Return_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Selector_Call_Expr ¶
Selector_Call_Expr :: struct { using node: Expr, expr: ^Expr, call: ^Call_Expr, modified_call: bool, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Selector_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Slice_Expr ¶
Slice_Expr :: struct { using node: Expr, expr: ^Expr, open: odin_tokenizer.Pos, low: ^Expr, interval: odin_tokenizer.Token, high: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Stmt ¶
Related Procedures With Parameters
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Struct_Type ¶
Struct_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, poly_params: ^Field_List, align: ^Expr, min_field_align: ^Expr, max_field_align: ^Expr, where_token: odin_tokenizer.Token, where_clauses: []^Expr, is_packed: bool, is_raw_union: bool, is_no_copy: bool, fields: ^Field_List, name_count: int, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Switch_Stmt ¶
Switch_Stmt :: struct { using node: Stmt, label: ^Expr, switch_pos: odin_tokenizer.Pos, init: ^Stmt, cond: ^Expr, body: ^Stmt, partial: bool, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Tag_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Tag_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Ternary_If_Expr ¶
Ternary_If_Expr :: struct { using node: Expr, x: ^Expr, op1: odin_tokenizer.Token, cond: ^Expr, op2: odin_tokenizer.Token, y: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Ternary_When_Expr ¶
Ternary_When_Expr :: struct { using node: Expr, x: ^Expr, op1: odin_tokenizer.Token, cond: ^Expr, op2: odin_tokenizer.Token, y: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Type_Assertion ¶
Type_Assertion :: struct { using node: Expr, expr: ^Expr, dot: odin_tokenizer.Pos, open: odin_tokenizer.Pos, type: ^Expr, close: odin_tokenizer.Pos, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Type_Cast ¶
Type_Cast :: struct { using node: Expr, tok: odin_tokenizer.Token, open: odin_tokenizer.Pos, type: ^Expr, close: odin_tokenizer.Pos, expr: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Type_Switch_Stmt ¶
Type_Switch_Stmt :: struct { using node: Stmt, label: ^Expr, switch_pos: odin_tokenizer.Pos, tag: ^Stmt, expr: ^Expr, body: ^Stmt, partial: bool, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Typeid_Type ¶
Typeid_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, specialization: ^Expr, }
Types
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Unary_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Undef ¶
Undef :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Union_Type ¶
Union_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, poly_params: ^Field_List, align: ^Expr, kind: Union_Type_Kind, where_token: odin_tokenizer.Token, where_clauses: []^Expr, variants: []^Expr, }
Procedures Through `using` From Expr
- clone_expr
- strip_or_return_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Union_Type_Kind ¶
Union_Type_Kind :: enum u8 { Normal, maybe, no_nil, shared_nil, }
Using_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Value_Decl ¶
Value_Decl :: struct { using node: Decl, docs: ^Comment_Group, attributes: [dynamic]^Attribute, // dynamic as parsing will add to them lazily names: []^Expr, type: ^Expr, values: []^Expr, comment: ^Comment_Group, is_using: bool, is_mutable: bool, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Visitor ¶
A Visitor's visit procedure is invoked for each node encountered by walk If the result visitor is not nil, walk visits each of the children of node with the new visitor, followed by a call of v.visit(v, nil)
Related Procedures With Parameters
When_Stmt ¶
When_Stmt :: struct { using node: Stmt, when_pos: odin_tokenizer.Pos, cond: ^Expr, body: ^Stmt, else_stmt: ^Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
- clone_node
- inspect
- new_from_pos_and_end_node
- walk
- new (procedure groups)
Constants
Field_Flags_Record_Poly_Params ¶
Field_Flags_Record_Poly_Params :: Field_Flags{.Typeid_Token, .Default_Parameters}
Field_Flags_Signature ¶
Field_Flags_Signature :: Field_Flags{.Ellipsis, .Using, .No_Alias, .C_Vararg, .Const, .Any_Int, .By_Ptr, .No_Broadcast, .Default_Parameters}
Field_Flags_Signature_Params ¶
Field_Flags_Signature_Params :: Field_Flags_Signature | {Field_Flag.Typeid_Token}
Field_Flags_Signature_Results ¶
Field_Flags_Signature_Results :: Field_Flags_Signature
Field_Flags_Struct ¶
Field_Flags_Struct :: Field_Flags{.Using, .Tags, .Subtype}
Variables
field_flag_strings ¶
field_flag_strings: [Field_Flag]string = …
field_hash_flag_strings ¶
field_hash_flag_strings: []struct { key: string, flag: Field_Flag, } = …
Procedures
clone_array ¶
clone_array :: proc(array: $A/[]^$T) -> $A/[]^$T {…}
clone_dynamic_array ¶
clone_dynamic_array :: proc(array: $A/[dynamic]^$T) -> $A/[dynamic]^$T {…}
inspect ¶
inspect traverses an AST in depth-first order It starts by calling f(node), and node must be non-nil If f returns true, inspect invokes f recursively for each of the non-nil children of node, followed by a call of f(nil)
walk ¶
walk traverses an AST in depth-first order: It starts by calling v.visit(v, node), and node must not be nil If the visitor returned by v.visit(v, node) is not nil, walk is invoked recursively with the new visitor for each of the non-nil children of node, followed by a call of the new visit procedure
Procedure Groups
clone ¶
clone :: proc{ clone_node, clone_expr, clone_stmt, clone_decl, clone_array, clone_dynamic_array, }
new ¶
new :: proc{ new_from_positions, new_from_pos_and_end_node, }
Source Files
Generation Information
Generated with odin version dev-2024-12 (vendor "odin") Windows_amd64 @ 2024-12-17 21:11:01.197217200 +0000 UTC