formak.ast_tools
¶
AST Tools.
Building blocks for representing a subset of C++ (and not necessarily a valid set by itself) to make for easier assembly than trying to add a combination of options to templates
Module Contents¶
Classes¶
Include a line for “public:”. |
|
Include a line for “private:”. |
|
Include start and end lines for a C++ namespace. |
|
Generate lines to set up a C++ struct or class. |
|
Generate lines to set up a function definition (separate from a function declaration). |
|
Generate an if statement. |
|
Functions¶
API¶
- class formak.ast_tools.BaseAst¶
Bases:
ast.AST
Initialization
Initialize self. See help(type(self)) for accurate signature.
- abstract compile(options: formak.ast_tools.CompileState, **kwargs)¶
- indent(options: formak.ast_tools.CompileState)¶
- formak.ast_tools.autoindent(compile_func)¶
- class formak.ast_tools.Public¶
Bases:
formak.ast_tools.BaseAst
Include a line for “public:”.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Private¶
Bases:
formak.ast_tools.BaseAst
Include a line for “private:”.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Arg¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('type_', 'name')¶
- type_: str = None¶
- name: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Namespace¶
Bases:
formak.ast_tools.BaseAst
Include start and end lines for a C++ namespace.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('name', 'body')¶
- name: str = None¶
- body: Iterable[formak.ast_tools.BaseAst] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.HeaderFile¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('pragma', 'includes', 'namespaces')¶
- pragma: bool = None¶
- includes: List[str] = None¶
- namespaces: List[formak.ast_tools.Namespace] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.SourceFile¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('includes', 'namespaces')¶
- includes: List[str] = None¶
- namespaces: List[formak.ast_tools.Namespace] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.ClassDef¶
Bases:
formak.ast_tools.BaseAst
Generate lines to set up a C++ struct or class.
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('tag', 'name', 'bases', 'body')¶
- tag: str = None¶
- name: str = None¶
- bases: List[str] = None¶
- body: Iterable[formak.ast_tools.BaseAst] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.EnumClassDef¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('name', 'members')¶
- name: str = None¶
- members: List[str] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.ForwardClassDeclaration¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('tag', 'name')¶
- tag: str = None¶
- name: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.MemberDeclaration¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('type_', 'name', 'value')¶
- type_: str = None¶
- name: str = None¶
- value: Optional[Any] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.UsingDeclaration¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('name', 'type_')¶
- name: str = None¶
- type_: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.ConstructorDeclaration¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('args',)¶
- args: Optional[Iterable[formak.ast_tools.Arg]] = None¶
- compile(options: formak.ast_tools.CompileState, classname: str, **kwargs)¶
- class formak.ast_tools.ConstructorDefinition¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('classname', 'args', 'initializer_list')¶
- classname: str = None¶
- args: Optional[Iterable[formak.ast_tools.Arg]] = None¶
- initializer_list: Optional[List[Tuple[str, str]]] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.FunctionDef¶
Bases:
formak.ast_tools.BaseAst
Generate lines to set up a function definition (separate from a function declaration).
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('return_type', 'name', 'args', 'modifier', 'body')¶
- return_type: str = None¶
- name: str = None¶
- args: Iterable[formak.ast_tools.Arg] = None¶
- modifier: str = None¶
- body: Iterable[formak.ast_tools.BaseAst] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.FunctionDeclaration¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('return_type', 'name', 'args', 'modifier')¶
- return_type: str = None¶
- name: str = None¶
- args: Iterable[formak.ast_tools.Arg] = None¶
- modifier: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Return¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('value',)¶
- value: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.If¶
Bases:
formak.ast_tools.BaseAst
Generate an if statement.
Naming follows the Python AST
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('test', 'body', 'orelse')¶
- test: str = None¶
- body: Iterable[formak.ast_tools.BaseAst] = None¶
- orelse: List[Any] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Templated¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('template_args', 'templated')¶
- template_args: Iterable[formak.ast_tools.Arg] = None¶
- templated: Any = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.FromFileTemplate¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('name', 'inserts')¶
- name: str = None¶
- inserts: Optional[Dict[str, Any]] = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶
- class formak.ast_tools.Escape¶
Bases:
formak.ast_tools.BaseAst
Initialization
Initialize self. See help(type(self)) for accurate signature.
- _fields = ('string',)¶
- string: str = None¶
- compile(options: formak.ast_tools.CompileState, **kwargs)¶