Xreate
The Xreate programming language
|
CFA(Control Flow Analysis) implementation More...
#include <cfapass.h>
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.
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. | |
|
overridevirtual |
Processes function invocation instruction in uncertain cases.
Executed when it's impossible statically determine which exactly function is invoked.
Reimplemented from AbstractPass< void >.