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

CFA(Control Flow Analysis) implementation More...

#include <cfapass.h>

Detailed Description

CFA(Control Flow Analysis) implementation

Provides CFA, an important analysis for the reasoning. Traverses over AST and stores the collected data in xreate::cfa::CFAGraph.

Inheritance diagram for CFAPass:
AbstractPass< void > IPass

Public Member Functions

void process (ManagedFnPtr function) override
 Processes Function.
 
void processFnCall (ManagedFnPtr function, PassContext context) override
 Processes function invocation instruction.
 
void processFnCallUncertain (const std::string &calleeName, const std::list< ManagedFnPtr > &candidates, PassContext context) override
 Processes function invocation instruction in uncertain cases. More...
 
void process (CodeScope *scope, PassContext context, const std::string &hintBlockDecl="") override
 Processes single CodeScope.
 
void process (const Expression &expression, PassContext context, const std::string &varDecl="") override
 Processes single Expression.
 
void finish () override
 Finalizes pass. Empty by default.
 
void run () override
 Executes pass.
 
- Public Member Functions inherited from AbstractPass< void >
virtual void process (ManagedRulePtr rule)
 Processes Logic Rule.
 
void run ()
 Executes AST traverse.
 

Member Function Documentation

◆ processFnCallUncertain()

void processFnCallUncertain ( const std::string &  calleeName,
const std::list< ManagedFnPtr > &  candidates,
PassContext  context 
)
overridevirtual

Processes function invocation instruction in uncertain cases.

Executed when it's impossible statically determine which exactly function is invoked.

Reimplemented from AbstractPass< void >.


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