|
Xreate
The Xreate programming language
|
Provides the interpretation analysis. Determines parts of a program eligible for Interpretation by xreate::interpretation::TargetInterpretation. More...
#include <interpretationpass.h>
Provides the interpretation analysis. Determines parts of a program eligible for Interpretation by xreate::interpretation::TargetInterpretation.
The class encapsulates Interpretation Analysis to support Interpretation.
It recognizes program functions, expressions, instructions eligible for interpretation and stores the output in Attachments<FunctionInterpretationData> and Attachments<InterpretationData>
There are number of instructions currently eligible for interpretation:
query intrinsic function callsif, loop fold, switch, switch variant statementsSome of these instructions are eligible also for late interpretation to allow coupling of compiled instructions with interpreted ones, those are:
if, loop fold, switch, switch variant statements
Public Member Functions | |
| InterpretationResolution | process (const Expression &expression, PassContext context, const std::string &varDecl="") override |
| Processes single Expression. | |
| InterpretationResolution | process (ManagedFnPtr function) |
| Processes Function. | |
| InterpretationResolution | processFnCall (ManagedFnPtr function, PassContext context) |
| Processes function invocation instruction. | |
| void | run () |
| Executes pass. | |
Public Member Functions inherited from AbstractPass< InterpretationResolution > | |
| virtual InterpretationResolution | processFnCallUncertain (const std::string &calleeName, const std::list< ManagedFnPtr > &candidates, PassContext context) |
| Processes function invocation instruction in uncertain cases. More... | |
| virtual void | process (ManagedRulePtr rule) |
| Processes Logic Rule. | |
| virtual InterpretationResolution | process (CodeScope *scope, PassContext context, const std::string &hintBlockDecl="") |
| Processes single CodeScope. | |
| void | run () |
| Executes AST traverse. | |
Public Member Functions inherited from IPass | |
| virtual void | finish () |
| Finalizes pass. Empty by default. | |
1.8.14