package core:odin/parser
⌘K
Ctrl+K
or
/
Index
Constants (2)
Variables (0)
This section is empty.
Procedures (92)
- advance_token
- allow_token
- check_field_flag_prefixes
- check_procedure_name_list
- collect_package
- consume_comment
- consume_comment_group
- consume_comment_groups
- convert_stmt_to_body
- convert_stmt_to_expr
- convert_to_ident_list
- default_error_handler
- default_parser
- default_warning_handler
- end_of_line_pos
- end_pos
- error
- expect_closing_brace_of_field_list
- expect_closing_parentheses_of_field_list
- expect_closing_token_of_field_list
- expect_operator
- expect_semicolon
- expect_semicolon_newline_error
- expect_token
- expect_token_after
- fix_advance_to_next_stmt
- get_build_arch_from_string
- get_build_os_from_string
- is_blank_ident_node
- is_blank_ident_string
- is_blank_ident_token
- is_literal_type
- is_non_inserted_semicolon
- is_package_name_reserved
- is_semicolon_optional_for_node
- is_token_field_prefix
- match_build_tags
- new_ast_field
- new_blank_ident
- next_token0
- parse_atom_expr
- parse_attribute
- parse_binary_expr
- parse_block_stmt
- parse_body
- parse_call_expr
- parse_case_clause
- parse_control_statement_semicolon_separator
- parse_elem_list
- parse_expr
- parse_expr_list
- parse_field_list
- parse_field_prefixes
- parse_file
- parse_file_tags
- parse_for_stmt
- parse_foreign_block
- parse_foreign_block_decl
- parse_foreign_decl
- parse_ident
- parse_ident_list
- parse_if_stmt
- parse_import_decl
- parse_inlining_operand
- parse_lhs_expr_list
- parse_literal_value
- parse_operand
- parse_package
- parse_package_from_path
- parse_proc_tags
- parse_proc_type
- parse_results
- parse_rhs_expr_list
- parse_simple_stmt
- parse_stmt
- parse_stmt_list
- parse_switch_stmt
- parse_type
- parse_type_or_ident
- parse_unary_expr
- parse_unrolled_for_loop
- parse_value
- parse_value_decl
- parse_var_type
- parse_when_stmt
- peek_token
- peek_token_kind
- skip_possible_newline
- skip_possible_newline_for_literal
- string_to_calling_convention
- token_precedence
- warn
Procedure Groups (1)
Types
Build_Kind ¶
Build_Kind :: struct { os: bit_set[.Odin_OS_Type], arch: bit_set[.Odin_Arch_Type], }
Related Constants
Build_Target ¶
Build_Target :: struct { os: .Odin_OS_Type, arch: .Odin_Arch_Type, project_name: string, }
Related Procedures With Parameters
Expr_And_Flags ¶
Expr_And_Flags :: struct { expr: ^odin_ast.Expr, flags: odin_ast.Field_Flags, }
File_Tags ¶
File_Tags :: struct { build_project_name: [][]string, build: []Build_Kind, private: Private_Flag, ignore: bool, lazy: bool, no_instrumentation: bool, }
Related Procedures With Parameters
Related Procedures With Returns
Flags ¶
Related Procedures With Parameters
Import_Decl_Kind ¶
Import_Decl_Kind :: enum int { Standard, Using, }
Related Procedures With Parameters
Parser ¶
Parser :: struct { file: ^odin_ast.File, tok: odin_tokenizer.Tokenizer, // If .Optional_Semicolons is true, semicolons are completely as statement terminators // different to .Insert_Semicolon in tok.flags flags: Flags, warn: Warning_Handler, err: Error_Handler, prev_tok: odin_tokenizer.Token, curr_tok: odin_tokenizer.Token, // >= 0: In Expression // < 0: In Control Clause // NOTE(bill): Used to prevent type literals in control clauses expr_level: int, allow_range: bool, // NOTE(bill): Ranges are only allowed in certain cases allow_in_expr: bool, // NOTE(bill): in expression are only allowed in certain cases in_foreign_block: bool, allow_type: bool, lead_comment: ^odin_ast.Comment_Group, line_comment: ^odin_ast.Comment_Group, curr_proc: ^odin_ast.Node, error_count: int, fix_count: int, fix_prev_pos: odin_tokenizer.Pos, peeking: bool, }
Related Procedures With Parameters
- advance_token
- allow_token
- check_field_flag_prefixes
- check_procedure_name_list
- consume_comment
- consume_comment_group
- consume_comment_groups
- convert_stmt_to_body
- convert_stmt_to_expr
- convert_to_ident_list
- end_of_line_pos
- error
- expect_closing_brace_of_field_list
- expect_closing_parentheses_of_field_list
- expect_closing_token_of_field_list
- expect_operator
- expect_semicolon
- expect_semicolon_newline_error
- expect_token
- expect_token_after
- fix_advance_to_next_stmt
- is_semicolon_optional_for_node
- is_token_field_prefix
- new_blank_ident
- next_token0
- parse_atom_expr
- parse_attribute
- parse_binary_expr
- parse_block_stmt
- parse_body
- parse_call_expr
- parse_case_clause
- parse_control_statement_semicolon_separator
- parse_elem_list
- parse_expr
- parse_expr_list
- parse_field_list
- parse_field_prefixes
- parse_file
- parse_for_stmt
- parse_foreign_block
- parse_foreign_block_decl
- parse_foreign_decl
- parse_ident
- parse_ident_list
- parse_if_stmt
- parse_import_decl
- parse_inlining_operand
- parse_lhs_expr_list
- parse_literal_value
- parse_operand
- parse_package
- parse_package_from_path
- parse_proc_tags
- parse_proc_type
- parse_results
- parse_rhs_expr_list
- parse_simple_stmt
- parse_stmt
- parse_stmt_list
- parse_switch_stmt
- parse_type
- parse_type_or_ident
- parse_unary_expr
- parse_unrolled_for_loop
- parse_value
- parse_value_decl
- parse_var_type
- parse_when_stmt
- peek_token
- peek_token_kind
- skip_possible_newline
- skip_possible_newline_for_literal
- token_precedence
- warn
Related Procedures With Returns
Private_Flag ¶
Private_Flag :: enum int { Public, Package, File, }
Stmt_Allow_Flag ¶
Stmt_Allow_Flag :: enum int { In, Label, }
Stmt_Allow_Flags ¶
Stmt_Allow_Flags :: distinct bit_set[Stmt_Allow_Flag]
Related Procedures With Parameters
Constants
BUILD_KIND_NEWLINE_MARKER ¶
BUILD_KIND_NEWLINE_MARKER :: Build_Kind{}
empty build kind acts as a marker for separating multiple lines with build tags
MAX_FIX_COUNT ¶
MAX_FIX_COUNT :: 10
Variables
This section is empty.
Procedures
allow_token ¶
allow_token :: proc(p: ^Parser, kind: odin_tokenizer.Token_Kind) -> bool {…}
check_field_flag_prefixes ¶
check_field_flag_prefixes :: proc(p: ^Parser, name_count: int, allowed_flags, set_flags: odin_ast.Field_Flags) -> (flags: odin_ast.Field_Flags) {…}
consume_comment_group ¶
consume_comment_group :: proc(p: ^Parser, n: int) -> (comments: ^odin_ast.Comment_Group, end_line: int) {…}
convert_to_ident_list ¶
convert_to_ident_list :: proc(p: ^Parser, list: []Expr_And_Flags, ignore_flags, allow_poly_names: bool) -> []^odin_ast.Expr {…}
expect_closing_token_of_field_list ¶
expect_closing_token_of_field_list :: proc(p: ^Parser, closing_kind: odin_tokenizer.Token_Kind, msg: string) -> odin_tokenizer.Token {…}
expect_token ¶
expect_token :: proc(p: ^Parser, kind: odin_tokenizer.Token_Kind) -> odin_tokenizer.Token {…}
expect_token_after ¶
expect_token_after :: proc(p: ^Parser, kind: odin_tokenizer.Token_Kind, msg: string) -> odin_tokenizer.Token {…}
fix_advance_to_next_stmt ¶
fix_advance_to_next_stmt :: proc(p: ^Parser) {…}
get_build_arch_from_string ¶
get_build_arch_from_string :: proc(str: string) -> .Odin_Arch_Type {…}
get_build_os_from_string ¶
get_build_os_from_string :: proc(str: string) -> .Odin_OS_Type {…}
is_token_field_prefix ¶
is_token_field_prefix :: proc(p: ^Parser) -> odin_ast.Field_Flag {…}
match_build_tags ¶
match_build_tags :: proc(file_tags: File_Tags, target: Build_Target) -> bool {…}
parse_attribute ¶
parse_attribute :: proc(p: ^Parser, tok: odin_tokenizer.Token, open_kind, close_kind: odin_tokenizer.Token_Kind, docs: ^odin_ast.Comment_Group) -> ^odin_ast.Stmt {…}
parse_body ¶
parse_body :: proc(p: ^Parser) -> ^odin_ast.Block_Stmt {…}
parse_case_clause ¶
parse_case_clause :: proc(p: ^Parser, is_type_switch: bool) -> ^odin_ast.Case_Clause {…}
parse_field_list ¶
parse_field_list :: proc(p: ^Parser, follow: odin_tokenizer.Token_Kind, allowed_flags: odin_ast.Field_Flags) -> (field_list: ^odin_ast.Field_List, total_name_count: int) {…}
parse_field_prefixes ¶
parse_field_prefixes :: proc(p: ^Parser) -> (flags: odin_ast.Field_Flags) {…}
parse_file_tags ¶
parse_file_tags :: proc(file: odin_ast.File, allocator := context.allocator) -> (tags: File_Tags) {…}
parse_foreign_block ¶
parse_foreign_block :: proc(p: ^Parser, tok: odin_tokenizer.Token) -> ^odin_ast.Foreign_Block_Decl {…}
parse_import_decl ¶
parse_import_decl :: proc(p: ^Parser, kind: Import_Decl_Kind = Import_Decl_Kind.Standard) -> ^odin_ast.Import_Decl {…}
parse_results ¶
parse_results :: proc(p: ^Parser) -> (list: ^odin_ast.Field_List, diverging: bool) {…}
parse_simple_stmt ¶
parse_simple_stmt :: proc(p: ^Parser, flags: Stmt_Allow_Flags) -> ^odin_ast.Stmt {…}
parse_value_decl ¶
parse_value_decl :: proc(p: ^Parser, names: []^odin_ast.Expr, docs: ^odin_ast.Comment_Group) -> ^odin_ast.Decl {…}
parse_var_type ¶
parse_var_type :: proc(p: ^Parser, flags: odin_ast.Field_Flags) -> ^odin_ast.Expr {…}
peek_token_kind ¶
peek_token_kind :: proc(p: ^Parser, kind: odin_tokenizer.Token_Kind, lookahead: int = 0) -> (ok: bool) {…}
string_to_calling_convention ¶
string_to_calling_convention :: proc(s: string) -> odin_ast.Proc_Calling_Convention {…}
token_precedence ¶
token_precedence :: proc(p: ^Parser, kind: odin_tokenizer.Token_Kind) -> int {…}
Procedure Groups
is_blank_ident ¶
is_blank_ident :: proc{ is_blank_ident_string, is_blank_ident_token, is_blank_ident_node, }
Source Files
Generation Information
Generated with odin version dev-2024-12 (vendor "odin") Windows_amd64 @ 2024-12-17 21:11:01.202282200 +0000 UTC