Mana
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mana::SyntaxNode Class Referencefinal

#include <SyntaxNode.h>

Inheritance diagram for mana::SyntaxNode:

Public Types

enum class  Id : uint8_t {
  Array , Assign , CallArgument , DeclareArgument ,
  Const , Call , Add , Sub ,
  Mul , Div , Rem , Neg ,
  Pow , Not , And , Or ,
  Xor , LeftShift , RightShift , Less ,
  LessEqual , Equal , NotEqual , GreaterEqual ,
  Greater , String , IntegerToFloat , FloatToInteger ,
  LogicalOr , LogicalAnd , LogicalNot , Halt ,
  Yield , Request , AwaitStart , AwaitCompletion ,
  Accept , Reject , Join , Sender ,
  Self , Priority , ExpressionIf , Print ,
  Return , Rollback , Block , If ,
  Switch , Case , Default , While ,
  Do , For , Loop , Lock ,
  Goto , Label , Break , Continue ,
  Identifier , TypeDescription , Declarator , DeclareVariable ,
  Sizeof , Actor , Phantom , Module ,
  Struct , Action , Extend , Allocate ,
  Static , NativeFunction , DeclareFunction , DefineConstant ,
  UndefineConstant , MemberFunction , MemberVariable , VariableSize
}
 構文木識別子 More...
 

Public Member Functions

 SyntaxNode (const Id id)
 
 ~SyntaxNode ()=default
 
std::shared_ptr< SyntaxNodeClone () const
 
bool Is (const Id id) const
 
bool IsNot (const Id id) const
 
Id GetId () const
 
address_t GetMemorySize () const
 
std::shared_ptr< SyntaxNodeGetLeftNode () const
 
void SetLeftNode (const std::shared_ptr< SyntaxNode > &left)
 
std::shared_ptr< SyntaxNodeGetRightNode () const
 
void SetRightNode (const std::shared_ptr< SyntaxNode > &right)
 
std::shared_ptr< SyntaxNodeGetBodyNode () const
 
void SetBodyNode (const std::shared_ptr< SyntaxNode > &body)
 
std::shared_ptr< SyntaxNodeGetNextNode () const
 
void SetNextNode (const std::shared_ptr< SyntaxNode > &next)
 
std::shared_ptr< SymbolGetSymbol () const
 
std::shared_ptr< TypeDescriptorGetTypeDescriptor () const
 
IntermediateLanguage GetOpecode () const
 
int_t GetInt () const
 
float_t GetFloat () const
 
const std::string_view & GetString () const
 
const std::string_view & GetFilename () const
 
int32_t GetLineno () const
 
void Set (const std::shared_ptr< Symbol > &symbol)
 
void Set (const std::shared_ptr< TypeDescriptor > &type)
 
void Set (const IntermediateLanguage code)
 
void Set (const int_t value)
 
void Set (const float_t value)
 
void Set (const std::string_view text)
 
std::shared_ptr< SyntaxNodeCast (const std::shared_ptr< TypeDescriptor > &type, const std::shared_ptr< TypeDescriptorFactory > &typeDescriptorFactory)
 

Static Public Attributes

static constexpr size_t IdSize = static_cast<size_t>(Id::VariableSize)
 

Detailed Description

構文木クラス

Member Enumeration Documentation

◆ Id

enum mana::SyntaxNode::Id : uint8_t
strong

構文木識別子

Enumerator
Array 

variable[argument] =

Assign 

=

CallArgument 

引数(呼び出し)

DeclareArgument 

引数(宣言)

Const 

定数

Call 

関数呼び出し

Add 

加算

Sub 

減算

Mul 

乗算

Div 

除算

Rem 

余剰

Neg 

±符号反転

Pow 

べき乗

Not 

~

And 

&

Or 

|

Xor 

^

LeftShift 

<<

RightShift 

Less 

<

LessEqual 

<=

Equal 

==

NotEqual 

!=

GreaterEqual 

>=

Greater 

String 

文字列

IntegerToFloat 

整数から実数へ変換

FloatToInteger 

実数から整数へ変換

LogicalOr 

||

LogicalAnd 

&&

LogicalNot 

!

Halt 

halt

Yield 

yield

Request 

req

AwaitStart 

reqsw

AwaitCompletion 

reqew

Accept 

comply (req許可)

Reject 

refuse (req拒否)

Join 

join

Sender 

sender (actor)

Self 

self (actor)

Priority 

priority (integer)

ExpressionIf 

三項演算子 '?'

Print 

print

Return 

return

Rollback 

rollback

Block 

ブロック

If 

if

Switch 

switch

Case 

case

Default 

default

While 

while

Do 

do while

For 

for

Loop 

loop

Lock 

lock

Goto 

goto

Label 

label

Break 

break

Continue 

continue

Identifier 
TypeDescription 
Declarator 
DeclareVariable 
Sizeof 
Actor 

アクターの宣言

Phantom 
Module 
Struct 
Action 
Extend 
Allocate 
Static 
NativeFunction 
DeclareFunction 
DefineConstant 
UndefineConstant 
MemberFunction 
MemberVariable 
VariableSize 

Constructor & Destructor Documentation

◆ SyntaxNode()

mana::SyntaxNode::SyntaxNode ( const Id  id)
explicit

◆ ~SyntaxNode()

mana::SyntaxNode::~SyntaxNode ( )
default

Member Function Documentation

◆ Cast()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::Cast ( const std::shared_ptr< TypeDescriptor > &  type,
const std::shared_ptr< TypeDescriptorFactory > &  typeDescriptorFactory 
)

◆ Clone()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::Clone ( ) const

◆ GetBodyNode()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::GetBodyNode ( ) const

◆ GetFilename()

const std::string_view & mana::SyntaxNode::GetFilename ( ) const

◆ GetFloat()

float_t mana::SyntaxNode::GetFloat ( ) const

◆ GetId()

SyntaxNode::Id mana::SyntaxNode::GetId ( ) const

◆ GetInt()

int_t mana::SyntaxNode::GetInt ( ) const

◆ GetLeftNode()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::GetLeftNode ( ) const

◆ GetLineno()

int32_t mana::SyntaxNode::GetLineno ( ) const

◆ GetMemorySize()

address_t mana::SyntaxNode::GetMemorySize ( ) const

◆ GetNextNode()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::GetNextNode ( ) const

◆ GetOpecode()

IntermediateLanguage mana::SyntaxNode::GetOpecode ( ) const

◆ GetRightNode()

std::shared_ptr< SyntaxNode > mana::SyntaxNode::GetRightNode ( ) const

◆ GetString()

const std::string_view & mana::SyntaxNode::GetString ( ) const

◆ GetSymbol()

std::shared_ptr< Symbol > mana::SyntaxNode::GetSymbol ( ) const

◆ GetTypeDescriptor()

std::shared_ptr< TypeDescriptor > mana::SyntaxNode::GetTypeDescriptor ( ) const

◆ Is()

bool mana::SyntaxNode::Is ( const Id  id) const

◆ IsNot()

bool mana::SyntaxNode::IsNot ( const Id  id) const

◆ Set() [1/6]

void mana::SyntaxNode::Set ( const float_t  value)

◆ Set() [2/6]

void mana::SyntaxNode::Set ( const int_t  value)

◆ Set() [3/6]

void mana::SyntaxNode::Set ( const IntermediateLanguage  code)

◆ Set() [4/6]

void mana::SyntaxNode::Set ( const std::shared_ptr< Symbol > &  symbol)

◆ Set() [5/6]

void mana::SyntaxNode::Set ( const std::shared_ptr< TypeDescriptor > &  type)

◆ Set() [6/6]

void mana::SyntaxNode::Set ( const std::string_view  text)

◆ SetBodyNode()

void mana::SyntaxNode::SetBodyNode ( const std::shared_ptr< SyntaxNode > &  body)

◆ SetLeftNode()

void mana::SyntaxNode::SetLeftNode ( const std::shared_ptr< SyntaxNode > &  left)

◆ SetNextNode()

void mana::SyntaxNode::SetNextNode ( const std::shared_ptr< SyntaxNode > &  next)

◆ SetRightNode()

void mana::SyntaxNode::SetRightNode ( const std::shared_ptr< SyntaxNode > &  right)

Member Data Documentation

◆ IdSize

constexpr size_t mana::SyntaxNode::IdSize = static_cast<size_t>(Id::VariableSize)
staticconstexpr

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