Mana
mana Namespace Reference

Namespaces

 builtInFunction
 
 lexer
 

Classes

class  CodeBuffer
 
class  CodeGenerator
 
class  DataBuffer
 
struct  Message
 
class  GlobalAddressResolver
 
class  GlobalSemanticAnalyzer
 
class  Lexer
 
class  LocalAddressResolver
 
class  LocalSemanticAnalyzer
 
class  ParsingDriver
 
class  SemanticAnalyzer
 
class  StringPool
 
class  Symbol
 
class  SymbolFactory
 
class  SyntaxNode
 
class  TypeDescriptor
 
struct  InitializeType
 
class  TypeDescriptorFactory
 
class  Actor
 
class  Buffer
 
struct  FileHeader
 
struct  ActorInfoHeader
 
struct  ActionInfoHeader
 
struct  IntermediateLanguageProperty
 
class  SystemRandom
 
struct  Noncopyable
 
class  OutputStream
 
class  Event
 
struct  Vector2
 
struct  Vector3
 
struct  Vector4
 
struct  Color
 
class  Plugin
 
class  Stack
 
class  VM
 

Typedefs

using float_t = float
 
using int_t = std::int32_t
 
using address_t = std::uint32_t
 
using offset_t = std::int32_t
 
using EventNameType = uint32_t
 

Enumerations

enum class  CompileErrorType : uint8_t { OK = 0 }
 
enum class  LinkerErrorType : uint8_t { OK = 0 }
 
enum class  CompileWarningType : uint8_t { OK = 0 }
 
enum class  LinkerWarningType : uint8_t { OK = 0 }
 
enum class  FatalType : uint8_t { NoMemory }
 
enum class  IntermediateLanguage : uint8_t {
  Restart = 0 , Halt , Yield , NonPreEmptive ,
  PreEmptive , BranchEqual , BranchNotEqual , Branch ,
  BranchSubRoutine , Call , Request , RequestWaitStarting ,
  RequestWaitEnded , Join , Comply , Refuse ,
  LoadReturnAddress , SaveReturnAddress , ReturnFromFunction , ReturnFromAction ,
  Rollback , PushZeroInteger , PushZeroFloat , PushChar ,
  PushShort , PushInteger , PushSize , PushFloat ,
  PushString , PushPriority , PushActor , PushSelf ,
  PushSender , Allocate , Free , Duplicate ,
  DuplicateData , Remove , RemoveData , LoadStaticAddress ,
  LoadGlobalAddress , LoadFrameAddress , LoadSelfAddress , LoadChar ,
  LoadShort , LoadInteger , LoadFloat , LoadReference ,
  LoadData , StoreChar , StoreShort , StoreInteger ,
  StoreFloat , StoreReference , StoreData , AddInteger ,
  DivideInteger , MinusInteger , ModInteger , MultiInteger ,
  SubtractInteger , AddFloat , DivideFloat , MinusFloat ,
  ModFloat , MultiFloat , SubtractFloat , And ,
  ExclusiveOr , LogicalAnd , LogicalOr , LogicalNot ,
  Not , Or , ShiftLeft , ShiftRight ,
  CastIntegerToFloat , CastFloatToInteger , CompareEqualInteger , CompareNotEqualInteger ,
  CompareGreaterEqualInteger , CompareGreaterInteger , CompareLessEqualInteger , CompareLessInteger ,
  CompareEqualFloat , CompareNotEqualFloat , CompareGreaterEqualFloat , CompareGreaterFloat ,
  CompareLessEqualFloat , CompareLessFloat , CompareEqualData , CompareNotEqualData ,
  CompareGreaterEqualData , CompareGreaterData , CompareLessEqualData , CompareLessData ,
  Print , DynamicRequest , DynamicRequestWaitStarting , DynamicRequestWaitEnded
}
 

Functions

void CompileError (const std::string &message)
 
void CompileError (std::initializer_list< std::string_view > message)
 
void CompileWarning (const std::string &message)
 
void CompileWarning (std::initializer_list< std::string_view > message)
 
void LinkerError (const std::string &message)
 
void LinkerError (std::initializer_list< std::string_view > message)
 
void LinkerWarning (const std::string &message)
 
void LinkerWarning (std::initializer_list< std::string_view > message)
 
void Fatal (const FatalType type)
 
void Fatal (const std::string &message)
 
void Fatal (std::initializer_list< std::string_view > message)
 
void FatalNoMemory ()
 
const char * GetString (const void *program, const address_t address, const void *buffer)
 
const char * GetInstructionText (const char *data, const void *program, const address_t address)
 
const char * GetInputFilename ()
 
const char * GetOutputFilename ()
 
const char * GetTargetFilename ()
 
bool Execute (const std::shared_ptr< const void > program)
 
int Execute (const std::string &path)
 
int Generate ()
 
void makepath (char *path, const size_t pathCount, const char *drive, const char *dir, const char *file, const char *ext)
 
void splitpath (const char *sptr, char *drive, const size_t driveCount, char *dir, const size_t dirCount, char *file, const size_t fileCount, char *ext, const size_t extCount)
 
char * fullpath (char *out, const char *in, const size_t size)
 
int chdir (const char *path)
 
constexpr char PathSeparator ()
 
const IntermediateLanguagePropertyGetIntermediateLanguageProperty (const IntermediateLanguage code)
 
address_t GetInstructionSize (const void *codeBuffer, const address_t index)
 
void srand (const int_t seed)
 
int_t irand ()
 
float_t frand ()
 
template<typename T >
constexpr T Pi ()
 
template<typename T >
constexpr T ToRadian (T degree)
 
template<typename T >
constexpr T ToDegree (T radian)
 
template<typename T >
AngleMod (const T x, const T div)
 
template<typename T >
Alignment (const T value, const T alignment)
 
template<typename T >
AlignUp (const T value, const T alignment)
 
bool IsBigEndian ()
 
int16_t SwapEndian (const int16_t value)
 
uint16_t SwapEndian (const uint16_t value)
 
int32_t SwapEndian (const int32_t value)
 
uint32_t SwapEndian (const uint32_t value)
 
float SwapEndian (const float value)
 
uint64_t GetMicroSecond ()
 
float_t GetSecond ()
 
std::string Concat (const std::initializer_list< std::string_view > &r)
 
void Trace (const std::string &message)
 
void Trace (const std::initializer_list< std::string_view > message)
 
void strcpy (char *outBuffer, size_t outBufferSize, const char *inBuffer)
 
void strcat (char *outBuffer, size_t outBufferSize, const char *inBuffer)
 
int strcmp (char const *buffer1, char const *buffer2)
 
bool IsValid (const address_t address)
 
template<typename T >
address_t ToAddress (const T size)
 
template<typename T >
offset_t ToOffset (const T size)
 
void FunctionInitialize (VM &vm)
 

Variables

char mInputFilename [_MAX_PATH]
 
char mOutputFilename [_MAX_PATH]
 
bool mExecute
 
bool mDebug
 
bool mRelease
 
std::ofstream mVariableHeaderFile
 

Detailed Description

mana (compiler)

Author
Shun Moriya
Date
2017-

mana (compiler)

Author
Shun Moriya
Date
2003-

mana (compiler)

Author
Shun Moriya
Date
2022-

mana (compiler)

Author
Shun Moriya
Date
2003-

mana (library)

Author
Shun Moriya
Date
2003-

mana (compiler/library)

Author
Shun Moriya
Date
2003-

mana (compiler/library)

Author
Shun Moriya
Date
2017-

mana (compiler/library)

Author
Shun Moriya
Date
2022-

mana (library)

Author
Shun Moriya
Date
2024-

mana (library)

Author
Shun Moriya
Date
2003-

Typedef Documentation

◆ address_t

using mana::address_t = typedef std::uint32_t

◆ EventNameType

using mana::EventNameType = typedef uint32_t

◆ float_t

using mana::float_t = typedef float

◆ int_t

using mana::int_t = typedef std::int32_t

◆ offset_t

using mana::offset_t = typedef std::int32_t

Enumeration Type Documentation

◆ CompileErrorType

enum mana::CompileErrorType : uint8_t
strong
Enumerator
OK 

◆ CompileWarningType

enum mana::CompileWarningType : uint8_t
strong
Enumerator
OK 

◆ FatalType

enum mana::FatalType : uint8_t
strong
Enumerator
NoMemory 

◆ IntermediateLanguage

enum mana::IntermediateLanguage : uint8_t
strong

byte code for virtual machine

Enumerator
Restart 
Halt 
Yield 
NonPreEmptive 
PreEmptive 
BranchEqual 
BranchNotEqual 
Branch 
BranchSubRoutine 
Call 
Request 
RequestWaitStarting 
RequestWaitEnded 
Join 
Comply 
Refuse 
LoadReturnAddress 
SaveReturnAddress 
ReturnFromFunction 
ReturnFromAction 
Rollback 
PushZeroInteger 
PushZeroFloat 
PushChar 
PushShort 
PushInteger 
PushSize 
PushFloat 
PushString 
PushPriority 
PushActor 
PushSelf 
PushSender 
Allocate 
Free 
Duplicate 
DuplicateData 
Remove 
RemoveData 
LoadStaticAddress 
LoadGlobalAddress 
LoadFrameAddress 
LoadSelfAddress 
LoadChar 
LoadShort 
LoadInteger 
LoadFloat 
LoadReference 
LoadData 
StoreChar 
StoreShort 
StoreInteger 
StoreFloat 
StoreReference 
StoreData 
AddInteger 
DivideInteger 
MinusInteger 
ModInteger 
MultiInteger 
SubtractInteger 
AddFloat 
DivideFloat 
MinusFloat 
ModFloat 
MultiFloat 
SubtractFloat 
And 
ExclusiveOr 
LogicalAnd 
LogicalOr 
LogicalNot 
Not 
Or 
ShiftLeft 
ShiftRight 
CastIntegerToFloat 
CastFloatToInteger 
CompareEqualInteger 
CompareNotEqualInteger 
CompareGreaterEqualInteger 
CompareGreaterInteger 
CompareLessEqualInteger 
CompareLessInteger 
CompareEqualFloat 
CompareNotEqualFloat 
CompareGreaterEqualFloat 
CompareGreaterFloat 
CompareLessEqualFloat 
CompareLessFloat 
CompareEqualData 
CompareNotEqualData 
CompareGreaterEqualData 
CompareGreaterData 
CompareLessEqualData 
CompareLessData 
Print 
DynamicRequest 
DynamicRequestWaitStarting 
DynamicRequestWaitEnded 

◆ LinkerErrorType

enum mana::LinkerErrorType : uint8_t
strong
Enumerator
OK 

◆ LinkerWarningType

enum mana::LinkerWarningType : uint8_t
strong
Enumerator
OK 

Function Documentation

◆ Alignment()

template<typename T >
T mana::Alignment ( const T  value,
const T  alignment 
)

◆ AlignUp()

template<typename T >
T mana::AlignUp ( const T  value,
const T  alignment 
)

◆ AngleMod()

template<typename T >
T mana::AngleMod ( const T  x,
const T  div 
)

◆ chdir()

int mana::chdir ( const char *  path)

change working directory

◆ CompileError() [1/2]

void mana::CompileError ( const std::string &  message)

◆ CompileError() [2/2]

void mana::CompileError ( std::initializer_list< std::string_view >  message)

◆ CompileWarning() [1/2]

void mana::CompileWarning ( const std::string &  message)

◆ CompileWarning() [2/2]

void mana::CompileWarning ( std::initializer_list< std::string_view >  message)

◆ Concat()

std::string mana::Concat ( const std::initializer_list< std::string_view > &  r)
inline

◆ Execute() [1/2]

bool mana::Execute ( const std::shared_ptr< const void >  program)

◆ Execute() [2/2]

int mana::Execute ( const std::string &  path)

◆ Fatal() [1/3]

void mana::Fatal ( const FatalType  type)

◆ Fatal() [2/3]

void mana::Fatal ( const std::string &  message)

◆ Fatal() [3/3]

void mana::Fatal ( std::initializer_list< std::string_view >  message)

◆ FatalNoMemory()

void mana::FatalNoMemory ( )

◆ frand()

float_t mana::frand ( )
inline

◆ fullpath()

char * mana::fullpath ( char *  out,
const char *  in,
const size_t  size 
)

return the canonicalized absolute pathname

◆ FunctionInitialize()

void mana::FunctionInitialize ( VM vm)
inline

組み込み関数(debug,wait,irand,frand,sin,cos,atan2,tan,angleMod,sqrt,find,)を登録します

◆ Generate()

int mana::Generate ( )

◆ GetInputFilename()

const char * mana::GetInputFilename ( )

◆ GetInstructionSize()

address_t mana::GetInstructionSize ( const void *  codeBuffer,
const address_t  index 
)
inline

◆ GetInstructionText()

const char * mana::GetInstructionText ( const char *  data,
const void *  program,
const address_t  address 
)

◆ GetIntermediateLanguageProperty()

const IntermediateLanguageProperty& mana::GetIntermediateLanguageProperty ( const IntermediateLanguage  code)
inline

◆ GetMicroSecond()

uint64_t mana::GetMicroSecond ( )
inline

◆ GetOutputFilename()

const char * mana::GetOutputFilename ( )

◆ GetSecond()

float_t mana::GetSecond ( )
inline

◆ GetString()

const char * mana::GetString ( const void *  program,
const address_t  address,
const void *  buffer 
)

◆ GetTargetFilename()

const char * mana::GetTargetFilename ( )

◆ irand()

int_t mana::irand ( )
inline

◆ IsBigEndian()

bool mana::IsBigEndian ( )
inline

◆ IsValid()

bool mana::IsValid ( const address_t  address)
inline

Determine if the address is invalid.

◆ LinkerError() [1/2]

void mana::LinkerError ( const std::string &  message)

◆ LinkerError() [2/2]

void mana::LinkerError ( std::initializer_list< std::string_view >  message)

◆ LinkerWarning() [1/2]

void mana::LinkerWarning ( const std::string &  message)

◆ LinkerWarning() [2/2]

void mana::LinkerWarning ( std::initializer_list< std::string_view >  message)

◆ makepath()

void mana::makepath ( char *  path,
const size_t  pathCount,
const char *  drive,
const char *  dir,
const char *  file,
const char *  ext 
)

Creates a path name from components.

◆ PathSeparator()

constexpr char mana::PathSeparator ( )
constexpr

return path separator charactor

◆ Pi()

template<typename T >
constexpr T mana::Pi ( )
constexpr

◆ splitpath()

void mana::splitpath ( const char *  sptr,
char *  drive,
const size_t  driveCount,
char *  dir,
const size_t  dirCount,
char *  file,
const size_t  fileCount,
char *  ext,
const size_t  extCount 
)

Break a path name into components.

◆ srand()

void mana::srand ( const int_t  seed)
inline

◆ strcat()

void mana::strcat ( char *  outBuffer,
size_t  outBufferSize,
const char *  inBuffer 
)
inline

◆ strcmp()

int mana::strcmp ( char const *  buffer1,
char const *  buffer2 
)
inline

◆ strcpy()

void mana::strcpy ( char *  outBuffer,
size_t  outBufferSize,
const char *  inBuffer 
)
inline

◆ SwapEndian() [1/5]

float mana::SwapEndian ( const float  value)
inline

◆ SwapEndian() [2/5]

int16_t mana::SwapEndian ( const int16_t  value)
inline

◆ SwapEndian() [3/5]

int32_t mana::SwapEndian ( const int32_t  value)
inline

◆ SwapEndian() [4/5]

uint16_t mana::SwapEndian ( const uint16_t  value)
inline

◆ SwapEndian() [5/5]

uint32_t mana::SwapEndian ( const uint32_t  value)
inline

◆ ToAddress()

template<typename T >
address_t mana::ToAddress ( const T  size)
inline

Check the value range and cast to address_t

◆ ToDegree()

template<typename T >
constexpr T mana::ToDegree ( radian)
constexpr

◆ ToOffset()

template<typename T >
offset_t mana::ToOffset ( const T  size)
inline

Check the value range and cast to offset_t

◆ ToRadian()

template<typename T >
constexpr T mana::ToRadian ( degree)
constexpr

◆ Trace() [1/2]

void mana::Trace ( const std::initializer_list< std::string_view >  message)
inline

◆ Trace() [2/2]

void mana::Trace ( const std::string &  message)
inline

Variable Documentation

◆ mDebug

bool mana::mDebug

◆ mExecute

bool mana::mExecute

◆ mInputFilename

char mana::mInputFilename[_MAX_PATH]

◆ mOutputFilename

char mana::mOutputFilename[_MAX_PATH]

◆ mRelease

bool mana::mRelease

◆ mVariableHeaderFile

std::ofstream mana::mVariableHeaderFile