Xreate
The Xreate programming language
Public Member Functions | List of all members
InterpretationPass Class Reference

Provides the interpretation analysis. Determines parts of a program eligible for Interpretation by xreate::interpretation::TargetInterpretation. More...

#include <interpretationpass.h>

Detailed Description

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:

Some of these instructions are eligible also for late interpretation to allow coupling of compiled instructions with interpreted ones, those are:

See also
xreate::interpretation::TargetInterpretation, Interpretation Concept
Inheritance diagram for InterpretationPass:
AbstractPass< InterpretationResolution > IPass

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.
 

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