|
hoshi-lang dev
Yet another programming language
|
#include <IR.h>
Public Member Functions | |
| Builder ()=default | |
| Builder & | setName (const yoi::wstr &name) |
| Builder & | addField (const yoi::wstr &fieldName, const std::shared_ptr< IRValueType > &fieldType) |
| Builder & | addMethod (const yoi::wstr &methodName, yoi::indexT index) |
| Builder & | setStoredTemplateArgs (const yoi::vec< yoi::wstr > ¶mNames, const yoi::vec< std::shared_ptr< IRValueType > > &args) |
| Builder & | addTemplateMethodDecl (const yoi::wstr &name, yoi::structDefInnerPair *decl) |
| Builder & | addTemplateMethodDef (const yoi::wstr &name, yoi::implInnerPair *def) |
| std::shared_ptr< IRStructDefinition > | yield () |
Public Attributes | |
| yoi::wstr | name |
| std::map< yoi::wstr, nameInfo > | nameIndexMap |
| yoi::vec< std::shared_ptr< IRValueType > > | fieldTypes |
| yoi::vec< yoi::wstr > | templateParamNames |
| yoi::vec< std::shared_ptr< IRValueType > > | storedTemplateArgs |
| std::map< yoi::wstr, yoi::structDefInnerPair * > | templateMethodDecls |
| std::map< yoi::wstr, yoi::implInnerPair * > | templateMethodDefs |
|
default |
| IRStructDefinition::Builder & addField | ( | const yoi::wstr & | fieldName, |
| const std::shared_ptr< IRValueType > & | fieldType | ||
| ) |
Definition at line 793 of file IR.cpp.
References IRStructDefinition::nameInfo::field, IRStructDefinition::fieldTypes, and IRStructDefinition::nameIndexMap.
Referenced by visitor::createCallableImplementationForFunction(), visitor::getGeneratorContext(), visitor::specializeStructTemplate(), and visitor::visit().

| IRStructDefinition::Builder & addMethod | ( | const yoi::wstr & | methodName, |
| yoi::indexT | index | ||
| ) |
Definition at line 799 of file IR.cpp.
References IRStructDefinition::nameInfo::method, and IRStructDefinition::nameIndexMap.
Referenced by visitor::createCallableImplementationForFunction(), visitor::getGeneratorContext(), visitor::specializeStructTemplate(), and visitor::visit().

| IRStructDefinition::Builder & addTemplateMethodDecl | ( | const yoi::wstr & | name, |
| yoi::structDefInnerPair * | decl | ||
| ) |
Definition at line 811 of file IR.cpp.
References IRStructDefinition::name, and IRStructDefinition::templateMethodDecls.
Referenced by visitor::specializeStructTemplate(), and visitor::visit().

| IRStructDefinition::Builder & addTemplateMethodDef | ( | const yoi::wstr & | name, |
| yoi::implInnerPair * | def | ||
| ) |
Definition at line 816 of file IR.cpp.
References IRStructDefinition::name, and IRStructDefinition::templateMethodDefs.
Referenced by visitor::specializeStructTemplate().

| IRStructDefinition::Builder & setName | ( | const yoi::wstr & | name | ) |
Definition at line 788 of file IR.cpp.
References IRStructDefinition::Builder::name.
Referenced by visitor::createCallableImplementationForFunction(), visitor::createLambdaUnnamedStruct(), visitor::getGeneratorContext(), visitor::specializeStructTemplate(), and visitor::visit().

| IRStructDefinition::Builder & setStoredTemplateArgs | ( | const yoi::vec< yoi::wstr > & | paramNames, |
| const yoi::vec< std::shared_ptr< IRValueType > > & | args | ||
| ) |
Definition at line 804 of file IR.cpp.
References IRStructDefinition::storedTemplateArgs, and IRStructDefinition::templateParamNames.
Referenced by visitor::specializeStructTemplate().

| std::shared_ptr< IRStructDefinition > yield | ( | ) |
Definition at line 821 of file IR.cpp.
References IRStructDefinition::fieldTypes, IRStructDefinition::name, IRStructDefinition::nameIndexMap, IRStructDefinition::storedTemplateArgs, IRStructDefinition::templateMethodDecls, IRStructDefinition::templateMethodDefs, and IRStructDefinition::templateParamNames.
Referenced by visitor::createCallableImplementationForFunction(), visitor::getGeneratorContext(), visitor::specializeStructTemplate(), and visitor::visit().

| yoi::vec<std::shared_ptr<IRValueType> > fieldTypes |
| yoi::wstr name |
Definition at line 638 of file IR.h.
Referenced by IRStructDefinition::Builder::setName().
| yoi::vec<std::shared_ptr<IRValueType> > storedTemplateArgs |
| std::map<yoi::wstr, yoi::structDefInnerPair *> templateMethodDecls |
| std::map<yoi::wstr, yoi::implInnerPair *> templateMethodDefs |