package core:odin/ast
Index
Types (97)
- 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_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_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)
Procedures (10)
Procedure Groups (1)
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, ^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, }
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, ^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, ^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, }
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, // Ellipsis node for [?]T arrray types, nil for slice types close: odin_tokenizer.Pos, elem: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Assign_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- walk
- clone (procedure groups)
Auto_Cast ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Bad_Expr ¶
Bad_Expr :: struct { using node: Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Bad_Stmt ¶
Bad_Stmt :: struct { using node: Stmt, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
Basic_Directive ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Basic_Lit ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Binary_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Branch_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Comment_Group ¶
Procedures Through `using` From Node
- clone_node
- inspect
- walk
- clone (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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Defer_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
Deref_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Distinct_Type ¶
Distinct_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, type: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Ellipsis ¶
Ellipsis :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, expr: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Empty_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Expr ¶
Related Procedures With Parameters
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Expr_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- walk
- clone (procedure groups)
Field_Flag ¶
Field_Flag :: enum int { Invalid, Unknown, Ellipsis, Using, No_Alias, C_Vararg, Auto_Cast, Any_Int, Subtype, By_Ptr, Results, Tags, Default_Parameters, Typeid_Token, }
Field_Flags ¶
Field_Flags :: distinct bit_set[Field_Flag]
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
- walk
- clone (procedure groups)
Field_Value ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
File ¶
File :: struct { using node: Node, id: int, pkg: ^Package, fullpath: string, src: string, 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
- walk
- clone (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
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
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: []string, comment: ^Comment_Group, }
Procedures Through `using` From Decl
- clone_decl
- clone (procedure groups)
Procedures Through `using` From Stmt
Procedures Through `using` From Node
Helper_Type ¶
Helper_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, type: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Ident ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Implicit ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Implicit_Selector_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Import_Decl ¶
Import_Decl :: struct { using node: Decl, docs: ^Comment_Group, 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
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Map_Type ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- walk
- clone (procedure groups)
Node_State_Flag ¶
Node_State_Flag :: enum int { Bounds_Check, No_Bounds_Check, }
Node_State_Flags ¶
Node_State_Flags :: distinct bit_set[Node_State_Flag]
Or_Else_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Or_Return_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- walk
- clone (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
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Pointer_Type ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Poly_Type ¶
Poly_Type :: struct { using node: Expr, dollar: odin_tokenizer.Pos, type: ^Ident, specialization: ^Expr, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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, }
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
Relative_Type ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Return_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Selector_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Stmt ¶
Related Procedures With Parameters
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
Struct_Type ¶
Struct_Type :: struct { using node: Expr, tok_pos: odin_tokenizer.Pos, poly_params: ^Field_List, 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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Tag_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Tag_Stmt ¶
Procedures Through `using` From Stmt
- clone_stmt
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
Typeid_Type ¶
Typeid_Type :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, specialization: ^Expr, }
Types
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Unary_Expr ¶
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
Undef ¶
Undef :: struct { using node: Expr, tok: odin_tokenizer.Token_Kind, }
Procedures Through `using` From Expr
- clone_expr
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
- unparen_expr
- clone (procedure groups)
Procedures Through `using` From Node
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
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
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
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, .Auto_Cast, .Any_Int, .By_Ptr, .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, }
Source Files
Generation Information
Generated with odin version dev-2023-07 (vendor "odin") Windows_amd64 @ 2023-07-31 21:09:17.674289100 +0000 UTC