Mana
mana::ParsingDriver Class Referencefinal

#include <ParsingDriver.h>

Inheritance diagram for mana::ParsingDriver:
mana::Noncopyable

Public Member Functions

 ParsingDriver ()
 
 ParsingDriver (const ParsingDriver &)=delete
 
 ParsingDriver (ParsingDriver &&) noexcept=delete
 
ParsingDriveroperator= (const ParsingDriver &)=delete
 
ParsingDriveroperator= (ParsingDriver &&) noexcept=delete
 
 ~ParsingDriver ()=default
 
int32_t Parse () const
 
const std::shared_ptr< CodeBuffer > & GetCodeBuffer ()
 
const std::shared_ptr< CodeGenerator > & GetCodeGenerator ()
 
const std::shared_ptr< DataBuffer > & GetDataBuffer ()
 
const std::shared_ptr< GlobalSemanticAnalyzer > & GetGlobalSemanticAnalyzer ()
 
const std::shared_ptr< SymbolFactory > & GetSymbolFactory ()
 
const std::shared_ptr< StringPool > & GetStringPool ()
 
const std::shared_ptr< TypeDescriptorFactory > & GetTypeDescriptorFactory ()
 

Protected Member Functions

std::shared_ptr< SyntaxNodeBind (const std::shared_ptr< SyntaxNode > &base, const std::shared_ptr< SyntaxNode > &next)
 
std::shared_ptr< SyntaxNodeCreateConstantNode (const std::string_view &identifier, const int_t value)
 
std::shared_ptr< SyntaxNodeCreateConstantNode (const std::string_view &identifier, const float_t value)
 
std::shared_ptr< SyntaxNodeCreateConstantNode (const std::string_view &identifier, const std::string_view &text)
 
std::shared_ptr< SyntaxNodeCreateDefineNode (const std::string_view &identifier, const std::string_view &text)
 
std::shared_ptr< SyntaxNodeCreateAction (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &block)
 
std::shared_ptr< SyntaxNodeCreateActorTypeDescription ()
 
std::shared_ptr< SyntaxNodeCreateIncrement (const std::shared_ptr< SyntaxNode > &expression)
 
std::shared_ptr< SyntaxNodeCreateDecrement (const std::shared_ptr< SyntaxNode > &expression)
 
std::shared_ptr< SyntaxNodeCreatePriority ()
 
std::shared_ptr< SyntaxNodeCreateSelf ()
 
std::shared_ptr< SyntaxNodeCreateSender ()
 
std::shared_ptr< SyntaxNodeCreateNil ()
 
std::shared_ptr< SyntaxNodeCreateInteger (const int_t value)
 
std::shared_ptr< SyntaxNodeCreateFloat (const float_t value)
 
std::shared_ptr< SyntaxNodeCreateString (const std::string_view &text)
 

Static Protected Member Functions

static std::shared_ptr< SyntaxNodeCreateNativeFunction (const std::shared_ptr< SyntaxNode > &returnExpression, const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &argument)
 
static std::shared_ptr< SyntaxNodeCreateDeclareMemory (const int_t size, const std::shared_ptr< SyntaxNode > &allocateDeclarations)
 
static std::shared_ptr< SyntaxNodeCreateDeclareStaticMemory (const int_t size, const std::shared_ptr< SyntaxNode > &allocateDeclarations)
 
static std::shared_ptr< SyntaxNodeCreateUndefineNode (const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeCreateActor (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &action)
 
static std::shared_ptr< SyntaxNodeCreatePhantom (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &action)
 
static std::shared_ptr< SyntaxNodeCreateModule (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &action)
 
static std::shared_ptr< SyntaxNodeCreateExtend (const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeCreateStruct (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &member)
 
static std::shared_ptr< SyntaxNodeCreateInternalFunction (const std::shared_ptr< SyntaxNode > &returnExpression, const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &argument, const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateTypeDescription (const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeCreateTypeDescription (const std::shared_ptr< TypeDescriptor > &typeDescriptor)
 
static std::shared_ptr< SyntaxNodeCreateBlock (const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateIf (const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &statementIfTrue, const std::shared_ptr< SyntaxNode > &statementIfFalse)
 
static std::shared_ptr< SyntaxNodeCreateSwitch (const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateWhile (const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateDoWhile (const std::shared_ptr< SyntaxNode > &statement, const std::shared_ptr< SyntaxNode > &condition)
 
static std::shared_ptr< SyntaxNodeCreateFor (const std::shared_ptr< SyntaxNode > &initializeStatement, const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &iterationExpression, const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateFor (const std::shared_ptr< SyntaxNode > &declareVariable, const std::shared_ptr< SyntaxNode > &initializeStatement, const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &iterationExpression, const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateLoop (const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateLock (const std::shared_ptr< SyntaxNode > &statement)
 
static std::shared_ptr< SyntaxNodeCreateGoto (const std::string_view &labelName)
 
static std::shared_ptr< SyntaxNodeCreateLabel (const std::string_view &labelName)
 
static std::shared_ptr< SyntaxNodeCreateReturn (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateRollback (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateBreak ()
 
static std::shared_ptr< SyntaxNodeCreateContinue ()
 
static std::shared_ptr< SyntaxNodeCreateHalt ()
 
static std::shared_ptr< SyntaxNodeCreateYield ()
 
static std::shared_ptr< SyntaxNodeCreateComply ()
 
static std::shared_ptr< SyntaxNodeCreateRefuse ()
 
static std::shared_ptr< SyntaxNodeCreatePrint (const std::shared_ptr< SyntaxNode > &argument)
 
static std::shared_ptr< SyntaxNodeCreateRequest (const std::shared_ptr< SyntaxNode > &priority, const std::shared_ptr< SyntaxNode > &expression, const std::string_view &actionName)
 
static std::shared_ptr< SyntaxNodeCreateAwaitStart (const std::shared_ptr< SyntaxNode > &priority, const std::shared_ptr< SyntaxNode > &expression, const std::string_view &actionName)
 
static std::shared_ptr< SyntaxNodeCreateAwaitCompletion (const std::shared_ptr< SyntaxNode > &priority, const std::shared_ptr< SyntaxNode > &expression, const std::string_view &actionName)
 
static std::shared_ptr< SyntaxNodeCreateJoin (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLogicalAnd (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLogicalOr (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateAdd (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateSub (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateMul (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateDiv (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateMod (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreatePow (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateAnd (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateOr (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateXor (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLeftShift (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateRightShift (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateGreater (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateGreaterEqual (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLess (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLessEqual (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateEqual (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateNotEqual (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateAddAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateSubAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateMulAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateDivAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateModAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreatePowAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateAndAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateOrAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateXorAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateLeftShiftAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateRightShiftAndAssign (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &rightHand)
 
static std::shared_ptr< SyntaxNodeCreateExpressionIf (const std::shared_ptr< SyntaxNode > &condition, const std::shared_ptr< SyntaxNode > &trueStatement, const std::shared_ptr< SyntaxNode > &falseStatement)
 
static std::shared_ptr< SyntaxNodeCreateNegative (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateNot (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateComplement1 (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateSizeOf (const std::shared_ptr< SyntaxNode > &variableType)
 
static std::shared_ptr< SyntaxNodeCreateCall (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &argument)
 
static std::shared_ptr< SyntaxNodeCreateMemberVariable (const std::shared_ptr< SyntaxNode > &leftHand, const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeCreateMemberFunction (const std::shared_ptr< SyntaxNode > &leftHand, const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &argument)
 
static std::shared_ptr< SyntaxNodeCreateArray (const std::shared_ptr< SyntaxNode > &leftHand, const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateIdentifier (const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeBindCaseNode (const std::shared_ptr< SyntaxNode > &next, const std::shared_ptr< SyntaxNode > &kase)
 
static std::shared_ptr< SyntaxNodeCreateSwitchCaseNode (const std::shared_ptr< SyntaxNode > &expression, const std::shared_ptr< SyntaxNode > &statements)
 
static std::shared_ptr< SyntaxNodeCreateSwitchDefaultNode (const std::shared_ptr< SyntaxNode > &statements)
 
static std::shared_ptr< SyntaxNodeCreateArgumentNode (const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateArgumentNode (const std::shared_ptr< SyntaxNode > &nextArgument, const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateDeclareArgumentNode (const std::shared_ptr< SyntaxNode > &declareVariable)
 
static std::shared_ptr< SyntaxNodeCreateDeclareArgumentNode (const std::shared_ptr< SyntaxNode > &nextDeclareArgument, const std::shared_ptr< SyntaxNode > &declareVariable)
 
static std::shared_ptr< SyntaxNodeCreateDeclareVariableNode (const std::shared_ptr< SyntaxNode > &variableType, const std::shared_ptr< SyntaxNode > &declarator, const std::shared_ptr< SyntaxNode > &expression)
 
static std::shared_ptr< SyntaxNodeCreateDeclaratorNode (const std::string_view &identifier)
 
static std::shared_ptr< SyntaxNodeCreateDeclaratorNode (const std::string_view &identifier, const std::shared_ptr< SyntaxNode > &variableSizeNode)
 
static std::shared_ptr< SyntaxNodeCreateVariableSizeNode (const size_t size)
 
static std::shared_ptr< SyntaxNodeCreateVariableSizeNode (const std::string_view &identifier)
 

Friends

class Parser
 

Detailed Description

Drive the Bison parser.

Constructor & Destructor Documentation

◆ ParsingDriver() [1/3]

mana::ParsingDriver::ParsingDriver ( )

◆ ParsingDriver() [2/3]

mana::ParsingDriver::ParsingDriver ( const ParsingDriver )
delete

◆ ParsingDriver() [3/3]

mana::ParsingDriver::ParsingDriver ( ParsingDriver &&  )
deletenoexcept

◆ ~ParsingDriver()

mana::ParsingDriver::~ParsingDriver ( )
default

Member Function Documentation

◆ Bind()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::Bind ( const std::shared_ptr< SyntaxNode > &  base,
const std::shared_ptr< SyntaxNode > &  next 
)
protected

◆ BindCaseNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::BindCaseNode ( const std::shared_ptr< SyntaxNode > &  next,
const std::shared_ptr< SyntaxNode > &  kase 
)
staticprotected

◆ CreateAction()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAction ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  block 
)
protected

◆ CreateActor()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateActor ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  action 
)
staticprotected

◆ CreateActorTypeDescription()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateActorTypeDescription ( )
protected

◆ CreateAdd()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAdd ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateAddAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAddAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateAnd()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAnd ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateAndAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAndAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateArgumentNode() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateArgumentNode ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateArgumentNode() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateArgumentNode ( const std::shared_ptr< SyntaxNode > &  nextArgument,
const std::shared_ptr< SyntaxNode > &  expression 
)
staticprotected

◆ CreateArray()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateArray ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  expression 
)
staticprotected

◆ CreateAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateAwaitCompletion()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAwaitCompletion ( const std::shared_ptr< SyntaxNode > &  priority,
const std::shared_ptr< SyntaxNode > &  expression,
const std::string_view &  actionName 
)
staticprotected

◆ CreateAwaitStart()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateAwaitStart ( const std::shared_ptr< SyntaxNode > &  priority,
const std::shared_ptr< SyntaxNode > &  expression,
const std::string_view &  actionName 
)
staticprotected

◆ CreateBlock()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateBlock ( const std::shared_ptr< SyntaxNode > &  statement)
staticprotected

◆ CreateBreak()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateBreak ( )
staticprotected

◆ CreateCall()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateCall ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  argument 
)
staticprotected

◆ CreateComplement1()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateComplement1 ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateComply()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateComply ( )
staticprotected

◆ CreateConstantNode() [1/3]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateConstantNode ( const std::string_view &  identifier,
const float_t  value 
)
protected

◆ CreateConstantNode() [2/3]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateConstantNode ( const std::string_view &  identifier,
const int_t  value 
)
protected

◆ CreateConstantNode() [3/3]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateConstantNode ( const std::string_view &  identifier,
const std::string_view &  text 
)
protected

◆ CreateContinue()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateContinue ( )
staticprotected

◆ CreateDeclaratorNode() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclaratorNode ( const std::string_view &  identifier)
staticprotected

◆ CreateDeclaratorNode() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclaratorNode ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  variableSizeNode 
)
staticprotected

◆ CreateDeclareArgumentNode() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclareArgumentNode ( const std::shared_ptr< SyntaxNode > &  declareVariable)
staticprotected

◆ CreateDeclareArgumentNode() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclareArgumentNode ( const std::shared_ptr< SyntaxNode > &  nextDeclareArgument,
const std::shared_ptr< SyntaxNode > &  declareVariable 
)
staticprotected

◆ CreateDeclareMemory()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclareMemory ( const int_t  size,
const std::shared_ptr< SyntaxNode > &  allocateDeclarations 
)
staticprotected

◆ CreateDeclareStaticMemory()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclareStaticMemory ( const int_t  size,
const std::shared_ptr< SyntaxNode > &  allocateDeclarations 
)
staticprotected

◆ CreateDeclareVariableNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDeclareVariableNode ( const std::shared_ptr< SyntaxNode > &  variableType,
const std::shared_ptr< SyntaxNode > &  declarator,
const std::shared_ptr< SyntaxNode > &  expression 
)
staticprotected

◆ CreateDecrement()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDecrement ( const std::shared_ptr< SyntaxNode > &  expression)
protected

◆ CreateDefineNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDefineNode ( const std::string_view &  identifier,
const std::string_view &  text 
)
protected

◆ CreateDiv()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDiv ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateDivAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDivAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateDoWhile()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateDoWhile ( const std::shared_ptr< SyntaxNode > &  statement,
const std::shared_ptr< SyntaxNode > &  condition 
)
staticprotected

◆ CreateEqual()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateEqual ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateExpressionIf()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateExpressionIf ( const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  trueStatement,
const std::shared_ptr< SyntaxNode > &  falseStatement 
)
staticprotected

◆ CreateExtend()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateExtend ( const std::string_view &  identifier)
staticprotected

◆ CreateFloat()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateFloat ( const float_t  value)
protected

◆ CreateFor() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateFor ( const std::shared_ptr< SyntaxNode > &  declareVariable,
const std::shared_ptr< SyntaxNode > &  initializeStatement,
const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  iterationExpression,
const std::shared_ptr< SyntaxNode > &  statement 
)
staticprotected

◆ CreateFor() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateFor ( const std::shared_ptr< SyntaxNode > &  initializeStatement,
const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  iterationExpression,
const std::shared_ptr< SyntaxNode > &  statement 
)
staticprotected

◆ CreateGoto()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateGoto ( const std::string_view &  labelName)
staticprotected

◆ CreateGreater()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateGreater ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateGreaterEqual()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateGreaterEqual ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateHalt()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateHalt ( )
staticprotected

◆ CreateIdentifier()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateIdentifier ( const std::string_view &  identifier)
staticprotected

◆ CreateIf()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateIf ( const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  statementIfTrue,
const std::shared_ptr< SyntaxNode > &  statementIfFalse 
)
staticprotected

◆ CreateIncrement()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateIncrement ( const std::shared_ptr< SyntaxNode > &  expression)
protected

◆ CreateInteger()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateInteger ( const int_t  value)
protected

◆ CreateInternalFunction()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateInternalFunction ( const std::shared_ptr< SyntaxNode > &  returnExpression,
const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  argument,
const std::shared_ptr< SyntaxNode > &  statement 
)
staticprotected

◆ CreateJoin()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateJoin ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLabel()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLabel ( const std::string_view &  labelName)
staticprotected

◆ CreateLeftShift()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLeftShift ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLeftShiftAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLeftShiftAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLess()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLess ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLessEqual()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLessEqual ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLock()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLock ( const std::shared_ptr< SyntaxNode > &  statement)
staticprotected

◆ CreateLogicalAnd()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLogicalAnd ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLogicalOr()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLogicalOr ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateLoop()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateLoop ( const std::shared_ptr< SyntaxNode > &  statement)
staticprotected

◆ CreateMemberFunction()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateMemberFunction ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  argument 
)
staticprotected

◆ CreateMemberVariable()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateMemberVariable ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::string_view &  identifier 
)
staticprotected

◆ CreateMod()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateMod ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateModAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateModAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateModule()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateModule ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  action 
)
staticprotected

◆ CreateMul()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateMul ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateMulAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateMulAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateNativeFunction()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateNativeFunction ( const std::shared_ptr< SyntaxNode > &  returnExpression,
const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  argument 
)
staticprotected

◆ CreateNegative()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateNegative ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateNil()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateNil ( )
protected

◆ CreateNot()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateNot ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateNotEqual()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateNotEqual ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateOr()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateOr ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateOrAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateOrAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreatePhantom()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreatePhantom ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  action 
)
staticprotected

◆ CreatePow()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreatePow ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreatePowAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreatePowAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreatePrint()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreatePrint ( const std::shared_ptr< SyntaxNode > &  argument)
staticprotected

◆ CreatePriority()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreatePriority ( )
protected

◆ CreateRefuse()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateRefuse ( )
staticprotected

◆ CreateRequest()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateRequest ( const std::shared_ptr< SyntaxNode > &  priority,
const std::shared_ptr< SyntaxNode > &  expression,
const std::string_view &  actionName 
)
staticprotected

◆ CreateReturn()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateReturn ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateRightShift()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateRightShift ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateRightShiftAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateRightShiftAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateRollback()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateRollback ( const std::shared_ptr< SyntaxNode > &  expression)
staticprotected

◆ CreateSelf()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSelf ( )
protected

◆ CreateSender()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSender ( )
protected

◆ CreateSizeOf()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSizeOf ( const std::shared_ptr< SyntaxNode > &  variableType)
staticprotected

◆ CreateString()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateString ( const std::string_view &  text)
protected

◆ CreateStruct()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateStruct ( const std::string_view &  identifier,
const std::shared_ptr< SyntaxNode > &  member 
)
staticprotected

◆ CreateSub()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSub ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateSubAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSubAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateSwitch()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSwitch ( const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  statement 
)
staticprotected

◆ CreateSwitchCaseNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSwitchCaseNode ( const std::shared_ptr< SyntaxNode > &  expression,
const std::shared_ptr< SyntaxNode > &  statements 
)
staticprotected

◆ CreateSwitchDefaultNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateSwitchDefaultNode ( const std::shared_ptr< SyntaxNode > &  statements)
staticprotected

◆ CreateTypeDescription() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateTypeDescription ( const std::shared_ptr< TypeDescriptor > &  typeDescriptor)
staticprotected

◆ CreateTypeDescription() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateTypeDescription ( const std::string_view &  identifier)
staticprotected

◆ CreateUndefineNode()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateUndefineNode ( const std::string_view &  identifier)
staticprotected

◆ CreateVariableSizeNode() [1/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateVariableSizeNode ( const size_t  size)
staticprotected

◆ CreateVariableSizeNode() [2/2]

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateVariableSizeNode ( const std::string_view &  identifier)
staticprotected

◆ CreateWhile()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateWhile ( const std::shared_ptr< SyntaxNode > &  condition,
const std::shared_ptr< SyntaxNode > &  statement 
)
staticprotected

◆ CreateXor()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateXor ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateXorAndAssign()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateXorAndAssign ( const std::shared_ptr< SyntaxNode > &  leftHand,
const std::shared_ptr< SyntaxNode > &  rightHand 
)
staticprotected

◆ CreateYield()

std::shared_ptr< SyntaxNode > mana::ParsingDriver::CreateYield ( )
staticprotected

◆ GetCodeBuffer()

const std::shared_ptr< CodeBuffer > & mana::ParsingDriver::GetCodeBuffer ( )

◆ GetCodeGenerator()

const std::shared_ptr< CodeGenerator > & mana::ParsingDriver::GetCodeGenerator ( )

◆ GetDataBuffer()

const std::shared_ptr< DataBuffer > & mana::ParsingDriver::GetDataBuffer ( )

◆ GetGlobalSemanticAnalyzer()

const std::shared_ptr< GlobalSemanticAnalyzer > & mana::ParsingDriver::GetGlobalSemanticAnalyzer ( )

◆ GetStringPool()

const std::shared_ptr< StringPool > & mana::ParsingDriver::GetStringPool ( )

◆ GetSymbolFactory()

const std::shared_ptr< SymbolFactory > & mana::ParsingDriver::GetSymbolFactory ( )

◆ GetTypeDescriptorFactory()

const std::shared_ptr< TypeDescriptorFactory > & mana::ParsingDriver::GetTypeDescriptorFactory ( )

◆ operator=() [1/2]

ParsingDriver& mana::ParsingDriver::operator= ( const ParsingDriver )
delete

◆ operator=() [2/2]

ParsingDriver& mana::ParsingDriver::operator= ( ParsingDriver &&  )
deletenoexcept

◆ Parse()

int32_t mana::ParsingDriver::Parse ( ) const

Friends And Related Function Documentation

◆ Parser

friend class Parser
friend

The documentation for this class was generated from the following files: