Xreate
The Xreate programming language
|
Entry point of Xreate API. More...
Entry point of Xreate API.
Manages whole Xreate compiler's internal workflow. There are 4 distinctive stages managed by XreateManager:
initPasses()
To init passes.executePasses()
To execute passes.analyse()
To run the reasoner.run()
To run the compiler.For adaptability reasons XreateManager comes with several frontends:
xreate::details::tier2::XreateManager
exposes all the stages to clients for full control.xreate::details::tier1::XreateManager
exposes analyse()
along with run()
, where analyse()
combines execution of all previous stages.xreate::XreateManager
exposes run()
only which properly initializes and executes all the stages for convenient use.Besides, there are also backends as follows:
Thus, client could combine a desired frontend along with a desired backend as it sees fit. Default xreate::XreateManager wraps around the full backend to init all builtin passes, and the simplest frontend with the only run()
exposed to execute all stages at once.
Public Member Functions | |
virtual void * | run ()=0 |
Consequently executes all compilation and code execution phases. | |
Static Public Member Functions | |
static XreateManager * | prepare (std::string &&code) |
Constructs XreateManager for a given code. | |
static XreateManager * | prepare (FILE *code) |
Constructs XreateManager for a given script file. | |