# {py:mod}`simvx.core.scene_io.source._source_ast.document` ```{py:module} simvx.core.scene_io.source._source_ast.document ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`AstDocument ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstDocument :summary: ``` * - {py:obj}`AstStatement ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstStatement :summary: ``` * - {py:obj}`AstImportDecl ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstImportDecl :summary: ``` * - {py:obj}`AstClassDecl ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstClassDecl :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`parse_document ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.parse_document :summary: ``` * - {py:obj}`parse_one_expression ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.parse_one_expression :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.scene_io.source._source_ast.document.__all__ :value: > ['AstDocument', 'parse_document', 'parse_one_expression'] ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.__all__ ``` ```` `````{py:class} AstDocument(state: simvx.core.scene_io.source._source_ast.document._State) :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument Bases: {py:obj}`simvx.core.scene_io.source.SourceDocument` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstDocument ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstDocument.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.__slots__ :value: > ('_state', '_original', '_epoch', '_handles') ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstDocument.__slots__ ``` ```` ````{py:property} backend_name :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.backend_name :type: str ```` ````{py:property} epoch :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.epoch :type: int ```` ````{py:property} original_text :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.original_text :type: str ```` ````{py:method} dump() -> str :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.dump ```` ````{py:method} is_unchanged() -> bool :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.is_unchanged ```` ````{py:method} top_level_classes() -> list[simvx.core.scene_io.source.ClassDecl] :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.top_level_classes ```` ````{py:method} find_class(name: str) -> simvx.core.scene_io.source.ClassDecl | None :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.find_class ```` ````{py:method} imports() -> list[simvx.core.scene_io.source.ImportDecl] :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.imports ```` ````{py:method} top_level_statements() -> list[simvx.core.scene_io.source.Statement] :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.top_level_statements ```` ````{py:method} insert_top_level(text: str, *, after: simvx.core.scene_io.source.Statement | None = None) -> simvx.core.scene_io.source.Statement :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.insert_top_level ```` ````{py:method} ensure_import(name: str, *, from_: str | None = None) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.ensure_import ```` ````{py:method} remove_import(name: str, *, from_: str | None = None) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.remove_import ```` ````{py:method} parse(text: str, *, backend: str | None = None) -> simvx.core.scene_io.source.SourceDocument :canonical: simvx.core.scene_io.source._source_ast.document.AstDocument.parse :classmethod: ```` ````` `````{py:class} AstStatement(document: simvx.core.scene_io.source._source_ast.document.AstDocument, anchor: int) :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement Bases: {py:obj}`simvx.core.scene_io.source.Statement` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstStatement ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstStatement.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.__slots__ :value: > ('_document', '_anchor', '_alive') ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstStatement.__slots__ ``` ```` ````{py:method} __repr__() -> str :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.__repr__ ```` ````{py:method} text() -> str :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.text ```` ````{py:method} kind() -> simvx.core.scene_io.source.StatementKind :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.kind ```` ````{py:method} leading_trivia() -> str :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.leading_trivia ```` ````{py:method} trailing_comment() -> str | None :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.trailing_comment ```` ````{py:method} shares_line() -> bool :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.shares_line ```` ````{py:method} line_group() -> list[simvx.core.scene_io.source.Statement] :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.line_group ```` ````{py:method} line() -> int :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.line ```` ````{py:method} column() -> int :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.column ```` ````{py:method} is_live() -> bool :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.is_live ```` ````{py:method} call() -> simvx.core.scene_io.source._source_ast.calls.AstCallView | None :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.call ```` ````{py:method} set_value(text: str) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.set_value ```` ````{py:method} bound_names() -> set[str] :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.bound_names ```` ````{py:method} mentioned_names() -> set[str] :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.mentioned_names ```` ````{py:method} rename_local(old: str, new: str) -> int :canonical: simvx.core.scene_io.source._source_ast.document.AstStatement.rename_local ```` ````` `````{py:class} AstImportDecl(document: simvx.core.scene_io.source._source_ast.document.AstDocument, statement: simvx.core.scene_io.source._source_ast.document.AstStatement) :canonical: simvx.core.scene_io.source._source_ast.document.AstImportDecl Bases: {py:obj}`simvx.core.scene_io.source.ImportDecl` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstImportDecl ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstImportDecl.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.scene_io.source._source_ast.document.AstImportDecl.__slots__ :value: > ('_document', '_statement') ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstImportDecl.__slots__ ``` ```` ````{py:property} statement :canonical: simvx.core.scene_io.source._source_ast.document.AstImportDecl.statement :type: simvx.core.scene_io.source.Statement ```` ````{py:property} module :canonical: simvx.core.scene_io.source._source_ast.document.AstImportDecl.module :type: str | None ```` ````{py:property} names :canonical: simvx.core.scene_io.source._source_ast.document.AstImportDecl.names :type: list[simvx.core.scene_io.source.ImportedName] ```` ````` `````{py:class} AstClassDecl(document: simvx.core.scene_io.source._source_ast.document.AstDocument, statement: simvx.core.scene_io.source._source_ast.document.AstStatement) :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl Bases: {py:obj}`simvx.core.scene_io.source.ClassDecl` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstClassDecl ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstClassDecl.__init__ ``` ````{py:attribute} __slots__ :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.__slots__ :value: > ('_document', '_statement') ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.AstClassDecl.__slots__ ``` ```` ````{py:property} name :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.name :type: str ```` ````{py:property} statement :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.statement :type: simvx.core.scene_io.source.Statement ```` ````{py:method} line() -> int :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.line ```` ````{py:method} body_statements() -> list[simvx.core.scene_io.source.Statement] :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.body_statements ```` ````{py:method} has_init() -> bool :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.has_init ```` ````{py:method} init_statements() -> list[simvx.core.scene_io.source.Statement] :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.init_statements ```` ````{py:method} bases() -> list[str] :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.bases ```` ````{py:method} set_base(old: str, new: str) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.set_base ```` ````{py:method} insert(text: str, *, after: simvx.core.scene_io.source.Statement | simvx.core.scene_io.source.Anchor) -> simvx.core.scene_io.source.Statement :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.insert ```` ````{py:method} insert_before(text: str, *, before: simvx.core.scene_io.source.Statement) -> simvx.core.scene_io.source.Statement :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.insert_before ```` ````{py:method} remove(stmt: simvx.core.scene_io.source.Statement) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.remove ```` ````{py:method} reorder(groups: list[list[simvx.core.scene_io.source.Statement]]) -> None :canonical: simvx.core.scene_io.source._source_ast.document.AstClassDecl.reorder ```` ````` ````{py:function} parse_document(text: str) -> simvx.core.scene_io.source._source_ast.document.AstDocument :canonical: simvx.core.scene_io.source._source_ast.document.parse_document ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.parse_document ``` ```` ````{py:function} parse_one_expression(text: str) -> None :canonical: simvx.core.scene_io.source._source_ast.document.parse_one_expression ```{autodoc2-docstring} simvx.core.scene_io.source._source_ast.document.parse_one_expression ``` ````