Interpreter prototype alpha
c++ interpreter for make believe language
 
Loading...
Searching...
No Matches
Interpreter Class Reference

Interprets and executes code from the abstract syntax tree. More...

#include <Interpreter.h>

Public Member Functions

 Interpreter (const std::string &filepath, const int &linenumber)
 Interpreter constructor.
 
void run__CODE (std::shared_ptr< tokenNode > &TKNode, const std::string &datatype)
 runs the interpreter
 

Private Member Functions

void visit_controlflow (std::shared_ptr< tokenNode > &TKNode, const std::string &datatype)
 visits control flow on the syntax tree
 
void visit_built_in_func (std::shared_ptr< tokenNode > &TKNode, const std::string &datatype)
 visits built in function
 
bool checkCondition (std::shared_ptr< tokenNode > &TKNode, const std::string &datatype)
 checks if the condition of a control flow is true from visit_controlflow() on for-loop, while-loop, if,else if statements
 
void visit_Variables (std::shared_ptr< tokenNode > &TKNode, const std::string &datatype)
 visits variable nodes and extracts their values
 
returnStringValues visitWORDS (std::shared_ptr< tokenNode > &TKNode)
 attempts to figure out if the passed in argument is a StringNode, OperatorNode or VariableNode
 
std::string visit__StringNode (std::shared_ptr< StringNode > &TKNode)
 visits a string and extracts it's value eg "value"
 
std::string visit__StringAppendNode (std::shared_ptr< VariableNode > &nodeToAppendTo, const std::string &passedvalue)
 appends a value to the end of a variable
 
returnNumberValues visitNUMBERS (std::shared_ptr< tokenNode > &TKNode)
 attempts to figure out if the passed in argument is a NumberNode, OperatorNode or VariableNode
 
double visit__unaryNumberNode (std::shared_ptr< NumberNode > &TKNode)
 extracts the number value from this node which is of type unary, eg -5 or +5
 
double visit__unaryNumberNodeExpr (std::shared_ptr< NumberNode > &TKNode)
 visits a number node contained within an expression such as and multiplies it by it's unary, eg -(5 + 5)
 
double visit__NumberNode (std::shared_ptr< NumberNode > &TKNode)
 extracts the number value from this node , eg 5
 
double visit__NumberAppendNode (std::shared_ptr< VariableNode > &nodeToAppendTo, const double &passedvalue)
 appends/adds or any other operator, a value to the end of a variable
 
returnNumberValues visit__numberOPNODE (std::shared_ptr< OperatorNode > &TKNode)
 attempts to figure out which operator is being used between two number nodes
 
returnStringValues visit__stringOPNODE (std::shared_ptr< OperatorNode > &TKNode)
 attempts to figure out which operator is being used between two word nodes
 
void resetVariableValue (std::shared_ptr< forNode > &forobj)
 reset a variable in a for loop back to it's original value after the for loop has finished executing
 

Private Attributes

std::string filePath
 name of the file currently being processed
 
int lnNum
 the line number in the file which is currently being processed
 
bool isInLoop
 specifies whether or not what is currently being processed is a loop or not
 

Detailed Description

Interprets and executes code from the abstract syntax tree.

Author
Michael

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