Abstract Syntax Tree for the `Odin` parser packages.

Collection Info

View Source
Collection
core
Path
odin/ast
Entries
124

Source Files

Constants

5

Field_Flags_Record_Poly_Params #

Source
Field_Flags_Record_Poly_Params :: Field_Flags{.Typeid_Token, .Default_Parameters}

Field_Flags_Signature #

Source
Field_Flags_Signature :: Field_Flags{.Ellipsis, .Using, .No_Alias, .C_Vararg, .Const, .Any_Int, .By_Ptr, .No_Broadcast, .Default_Parameters}

Field_Flags_Signature_Params #

Source
Field_Flags_Signature_Params :: Field_Flags_Signature | {Field_Flag.Typeid_Token}

Field_Flags_Signature_Results #

Source
Field_Flags_Signature_Results :: Field_Flags_Signature

Field_Flags_Struct #

Source
Field_Flags_Struct :: Field_Flags{.Using, .Tags, .Subtype}

Types

103

Visitor #

Source
Visitor :: 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)

Procedures

12

clone_array #

Source
clone_array :: proc(array: $A/[]^$T) -> $$deferred_return {…}

clone_dynamic_array #

Source
clone_dynamic_array :: proc(array: $A/[dynamic]^$T) -> $$deferred_return {…}

inspect #

Source
inspect :: proc(node: ^Node, f: proc(^Node) -> bool) {…}

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 #

Source
walk :: proc(v: ^Visitor, node: ^Node) {…}

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

2

Variables

2

field_flag_strings #

Source
field_flag_strings: [Field_Flag]string = [Field_Flag]string{.Invalid = "", .Unknown = "", .Ellipsis = "..", .Using = "using", .No_Alias = "#no_alias", .C_Vararg = "#c_vararg", .Const = "#const", .Any_Int = "#any_int", .Subtype = "#subtype", .By_Ptr = "#by_ptr", .No_Broadcast = "#no_broadcast", .No_Capture = "#no_capture", .Results = "results", .Tags = "field tag", .Default_Parameters = "default parameters", .Typeid_Token = "typeid"}

field_hash_flag_strings #

Source
field_hash_flag_strings: []struct {
	key:  string,
	flag: Field_Flag,
} = []struct {key: string, flag: Field_Flag}{{"no_alias", .No_Alias}, {"c_vararg", .C_Vararg}, {"const", .Const}, {"any_int", .Any_Int}, {"subtype", .Subtype}, {"by_ptr", .By_Ptr}, {"no_broadcast", .No_Broadcast}, {"no_capture", .No_Capture}}