Documentation
arx.parser.base
arx.parser.base
Source: packages/arx/src/arx/parser/base.py
title: Shared parser mixin base.
summary: >-
Declare parser state and cross-mixin method contracts so the parser can be
split by concern while keeping the public Parser API stable.
Classes
ParserMixinBase
title: Shared parser mixin contract.
attributes:
bin_op_precedence:
type: dict[str, int]
indent_level:
type: int
list_scopes:
type: list[set[str]]
known_class_names:
type: set[str]
imported_type_names:
type: set[str]
namespace_roots:
type: set[str]
builtin_type_bindings:
type: dict[str, astx.DataType]
tensor_scopes:
type: list[dict[str, TensorBinding | None]]
dataframe_scopes:
type: list[dict[str, DataFrameBinding | None]]
return_type_scopes:
type: list[astx.DataType]
template_type_scopes:
type: list[dict[str, astx.DataType]]
type_aliases:
type: dict[str, astx.DataType]
value_scopes:
type: list[set[str]]
tokens:
type: TokenList
Methods
parse_statement(self) -> astx.AST
title: Parse a statement without admitting it as an expression operand.
returns:
type: astx.AST
match_clause(self, kind: TokenKind, indentation: int) -> bool
title: Match a clause without consuming an unrelated line marker.
parameters:
kind:
type: TokenKind
indentation:
type: int
returns:
type: bool
get_tok_precedence(self) -> int
title: Get the precedence of the pending binary operator token.
returns:
type: int
parse_expression(self) -> astx.AST
title: Parse one expression.
returns:
type: astx.AST
parse_block(self, allow_docstring: bool=False, declared_names: tuple[str, ...]=(), declared_lists: tuple[str, ...]=(), declared_tensors: dict[str, TensorBinding | None] | None=None, declared_dataframes: dict[str, DataFrameBinding | None] | None=None) -> astx.Block
title: Parse one block of nodes.
parameters:
allow_docstring:
type: bool
declared_names:
type: tuple[str, Ellipsis]
declared_lists:
type: tuple[str, Ellipsis]
declared_tensors:
type: dict[str, TensorBinding | None] | None
declared_dataframes:
type: dict[str, DataFrameBinding | None] | None
returns:
type: astx.Block
parse_type(self, *, allow_template_vars: bool=True, allow_union: bool=False, type_context: TypeUseContext=TypeUseContext.GENERAL) -> astx.DataType
title: Parse one type annotation.
parameters:
allow_template_vars:
type: bool
allow_union:
type: bool
type_context:
type: TypeUseContext
returns:
type: astx.DataType
is_type_alias_decl_start(self) -> bool
title: Return whether the current token starts a type alias.
returns:
type: bool
parse_type_alias_decl(self) -> None
title: Parse one top-level type alias declaration.
parse_function(self, template_params: tuple[astx.TemplateParam, ...]=()) -> astx.FunctionDef
title: Parse one function definition.
parameters:
template_params:
type: tuple[astx.TemplateParam, Ellipsis]
returns:
type: astx.FunctionDef
parse_extern(self) -> astx.FunctionPrototype
title: Parse one extern declaration.
returns:
type: astx.FunctionPrototype
parse_import_stmt(self) -> astx.ImportStmt | astx.ImportFromStmt
title: Parse one import statement.
returns:
type: astx.ImportStmt | astx.ImportFromStmt
parse_class_decl(self, annotations: ParsedAnnotation | None=None) -> astx.ClassDefStmt
title: Parse one class declaration.
parameters:
annotations:
type: ParsedAnnotation | None
returns:
type: astx.ClassDefStmt
parse_declaration_prefixes(self, *, body_indent: int | None=None) -> ParsedDeclarationPrefixes
title: Parse declaration prefixes before one declaration.
parameters:
body_indent:
type: int | None
returns:
type: ParsedDeclarationPrefixes
parse_template_argument_list(self) -> tuple[astx.DataType, ...]
title: Parse one explicit template-argument list.
returns:
type: tuple[astx.DataType, Ellipsis]
parse_if_stmt(self) -> astx.IfStmt
title: Parse one if expression.
returns:
type: astx.IfStmt
parse_while_stmt(self) -> astx.WhileStmt
title: Parse one while expression.
returns:
type: astx.WhileStmt
parse_for_stmt(self) -> astx.AST
title: Parse one for-loop expression.
returns:
type: astx.AST
parse_var_expr(self) -> astx.VariableDeclaration
title: Parse one typed variable declaration.
returns:
type: astx.VariableDeclaration
parse_assert_stmt(self) -> astx.AssertStmt
title: Parse one fatal assertion statement.
returns:
type: astx.AssertStmt
parse_return_function(self) -> astx.FunctionReturn
title: Parse one return expression.
returns:
type: astx.FunctionReturn
parse_prototype(self, expect_colon: bool) -> astx.FunctionPrototype
title: Parse one function or extern prototype.
parameters:
expect_colon:
type: bool
returns:
type: astx.FunctionPrototype