MADARA  3.1.8
Interpreter.cpp File Reference
#include <iostream>
#include <sstream>
#include "madara/expression/ComponentNode.h"
#include "madara/expression/LeafNode.h"
#include "madara/expression/VariableNode.h"
#include "madara/expression/VariableCompareNode.h"
#include "madara/expression/VariableDecrementNode.h"
#include "madara/expression/VariableDivideNode.h"
#include "madara/expression/VariableIncrementNode.h"
#include "madara/expression/VariableMultiplyNode.h"
#include "madara/expression/ListNode.h"
#include "madara/expression/CompositeConstArray.h"
#include "madara/expression/CompositeNegateNode.h"
#include "madara/expression/CompositePostdecrementNode.h"
#include "madara/expression/CompositePostincrementNode.h"
#include "madara/expression/CompositePredecrementNode.h"
#include "madara/expression/CompositePreincrementNode.h"
#include "madara/expression/CompositeNotNode.h"
#include "madara/expression/CompositeAddNode.h"
#include "madara/expression/CompositeAndNode.h"
#include "madara/expression/CompositeOrNode.h"
#include "madara/expression/CompositeArrayReference.h"
#include "madara/expression/CompositeAssignmentNode.h"
#include "madara/expression/CompositeEqualityNode.h"
#include "madara/expression/CompositeInequalityNode.h"
#include "madara/expression/CompositeGreaterThanEqualNode.h"
#include "madara/expression/CompositeGreaterThanNode.h"
#include "madara/expression/CompositeLessThanEqualNode.h"
#include "madara/expression/CompositeLessThanNode.h"
#include "madara/expression/CompositeSubtractNode.h"
#include "madara/expression/CompositeDivideNode.h"
#include "madara/expression/CompositeMultiplyNode.h"
#include "madara/expression/CompositeModulusNode.h"
#include "madara/expression/CompositeBothNode.h"
#include "madara/expression/CompositeReturnRightNode.h"
#include "madara/expression/CompositeFunctionNode.h"
#include "madara/expression/CompositeForLoop.h"
#include "madara/expression/CompositeSequentialNode.h"
#include "madara/expression/CompositeSquareRootNode.h"
#include "madara/expression/CompositeImpliesNode.h"
#include "madara/expression/SystemCallClearVariable.h"
#include "madara/expression/SystemCallCos.h"
#include "madara/expression/SystemCallDeleteVariable.h"
#include "madara/expression/SystemCallEval.h"
#include "madara/expression/SystemCallExpandEnv.h"
#include "madara/expression/SystemCallExpandStatement.h"
#include "madara/expression/SystemCallFragment.h"
#include "madara/expression/SystemCallGetClock.h"
#include "madara/expression/SystemCallGetTime.h"
#include "madara/expression/SystemCallGetTimeSeconds.h"
#include "madara/expression/SystemCallLogLevel.h"
#include "madara/expression/SystemCallPow.h"
#include "madara/expression/SystemCallPrint.h"
#include "madara/expression/SystemCallPrintSystemCalls.h"
#include "madara/expression/SystemCallRandDouble.h"
#include "madara/expression/SystemCallRandInt.h"
#include "madara/expression/SystemCallReadFile.h"
#include "madara/expression/SystemCallSetClock.h"
#include "madara/expression/SystemCallSetFixed.h"
#include "madara/expression/SystemCallSetPrecision.h"
#include "madara/expression/SystemCallSetScientific.h"
#include "madara/expression/SystemCallSin.h"
#include "madara/expression/SystemCallSize.h"
#include "madara/expression/SystemCallSleep.h"
#include "madara/expression/SystemCallSqrt.h"
#include "madara/expression/SystemCallTan.h"
#include "madara/expression/SystemCallToBuffer.h"
#include "madara/expression/SystemCallToDouble.h"
#include "madara/expression/SystemCallToDoubles.h"
#include "madara/expression/SystemCallToHostDirs.h"
#include "madara/expression/SystemCallToInteger.h"
#include "madara/expression/SystemCallToIntegers.h"
#include "madara/expression/SystemCallToString.h"
#include "madara/expression/SystemCallType.h"
#include "madara/expression/SystemCallWriteFile.h"
#include "madara/expression/Interpreter.h"
Include dependency graph for Interpreter.cpp:

Go to the source code of this file.

Classes

class  madara::expression::Add
 Addition node of the parse tree. More...
 
class  madara::expression::And
 Logically and node of the parse tree. More...
 
class  madara::expression::ArrayRef
 Leaf node for an array reference. More...
 
class  madara::expression::Assignment
 Assign the value of an expression to a variable. More...
 
class  madara::expression::Both
 Evaluates both left and right children, regardless of values. More...
 
class  madara::expression::ClearVariable
 Clears a variable in the knowledge base. More...
 
class  madara::expression::ConstArray
 A constant array that should not be changed. More...
 
class  madara::expression::Cos
 Returns the cosine of a term (radians) More...
 
class  madara::expression::DeleteVariable
 Deletes a variable from the knowledge base. More...
 
class  madara::expression::Divide
 Division node of the parse tree. More...
 
class  madara::expression::Equality
 Check and left and right arguments for equality. More...
 
class  madara::expression::Eval
 Evaluates a Knowledge Record and returns result. More...
 
class  madara::expression::ExpandEnv
 Expands a statement, e.g. More...
 
class  madara::expression::ExpandStatement
 Expands a statement, e.g. More...
 
class  madara::expression::ForLoop
 Iterative looping node of the parse tree. More...
 
class  madara::expression::Fragment
 Fragment the Knowledge Record. More...
 
class  madara::expression::Function
 Function node of the parse tree. More...
 
class  madara::expression::GetClock
 Returns the clock of the argument or the system clock. More...
 
class  madara::expression::GetTime
 Returns the wall clock time. More...
 
class  madara::expression::GetTimeSeconds
 Returns the wall clock time in seconds. More...
 
class  madara::expression::GreaterThan
 Check and left and right arguments for greater than. More...
 
class  madara::expression::GreaterThanEqual
 Check and left and right arguments for greater than or equal to. More...
 
class  madara::expression::Implies
 Assign the value of an expression to a variable. More...
 
class  madara::expression::Inequality
 Check and left and right arguments for inequality. More...
 
class  madara::expression::LessThan
 Check and left and right arguments for less than. More...
 
class  madara::expression::LessThanEqual
 Check and left and right arguments for less than or equal to. More...
 
class  madara::expression::List
 Parameter List. More...
 
class  madara::expression::LogLevel
 Reads or sets the MADARA log level. More...
 
class  madara::expression::Modulus
 Modulus node of the parse tree (10 % 4 == 2) More...
 
class  madara::expression::Multiply
 Multiplication node of the parse tree. More...
 
class  madara::expression::Negate
 Negate node of the parse tree. More...
 
class  madara::expression::Not
 Logically not the right node. More...
 
class  madara::expression::Number
 Leaf node of parse tree. More...
 
class  madara::expression::Operator
 Abstract base class for all parse tree node operators. More...
 
class  madara::expression::Or
 Logically or node of the parse tree. More...
 
class  madara::expression::Postdecrement
 Postdecrement node of the parse tree. More...
 
class  madara::expression::Postincrement
 Postincrement node of the parse tree. More...
 
class  madara::expression::Power
 Returns a base term taken to a power (exponent) More...
 
class  madara::expression::Predecrement
 Predecrement node of the parse tree. More...
 
class  madara::expression::Preincrement
 Preincrement node of the parse tree. More...
 
class  madara::expression::Print
 Prints a Knowledge Record to the stderr. More...
 
class  madara::expression::PrintSystemCalls
 Prints a help menu for all system calls. More...
 
class  madara::expression::RandDouble
 Generates a random double. More...
 
class  madara::expression::RandInt
 Generates a random integer. More...
 
class  madara::expression::ReadFile
 Reads a file. More...
 
class  madara::expression::ReturnRight
 Evaluates both left and right children and returns right value. More...
 
class  madara::expression::Sequence
 Evaluates both left and right children, regardless of values. More...
 
class  madara::expression::SetClock
 Sets the system or a variable clock. More...
 
class  madara::expression::SetFixed
 Sets the output format to std::fixed. More...
 
class  madara::expression::SetPrecision
 Sets the precision of doubles. More...
 
class  madara::expression::SetScientific
 Sets the output to std::scientific. More...
 
class  madara::expression::Sin
 Returns the sin of a term (radians) More...
 
class  madara::expression::Size
 Returns the size of a record. More...
 
class  madara::expression::Sleep
 Sleeps for a certain amount of time. More...
 
class  madara::expression::SquareRoot
 Returns the square root of a term. More...
 
class  madara::expression::SquareRootUnary
 
class  madara::expression::Subtract
 Subtraction node of the parse tree. More...
 
class  madara::expression::Symbol
 Abstract base class of all parse tree nodes. More...
 
class  madara::expression::SystemCall
 Abstract base class for operators with 3+ potential subnodes. More...
 
class  madara::expression::Tan
 Returns the tangent of a term (radians) More...
 
class  madara::expression::TernaryOperator
 Abstract base class for operators with 3+ potential subnodes. More...
 
class  madara::expression::ToBuffer
 Returns a buffer. More...
 
class  madara::expression::ToDouble
 Returns a double. More...
 
class  madara::expression::ToDoubles
 Returns a double array. More...
 
class  madara::expression::ToHostDirs
 Returns a version that has a directory structure appropriate to the OS. More...
 
class  madara::expression::ToInteger
 Returns an integer. More...
 
class  madara::expression::ToIntegers
 Returns an integers. More...
 
class  madara::expression::ToString
 Returns a string. More...
 
class  madara::expression::Type
 Returns the type of a record. More...
 
class  madara::expression::UnaryOperator
 Abstract base class for all parse tree node operators. More...
 
class  madara::expression::Variable
 Leaf node of parse tree. More...
 
class  madara::expression::VariableCompare
 Increment a variable by a certain amount. More...
 
class  madara::expression::VariableDecrement
 Decrement a variable by a certain amount. More...
 
class  madara::expression::VariableDivide
 Divide a variable by a certain amount. More...
 
class  madara::expression::VariableIncrement
 Increment a variable by a certain amount. More...
 
class  madara::expression::VariableMultiply
 Multiply a variable by a certain amount. More...
 
class  madara::expression::WriteFile
 Writes a file. More...
 

Namespaces

 madara
 Copyright (c) 2015 Carnegie Mellon University.
 
 madara::expression
 Contains the KaRL expression tree interpreter and related classes.
 

Macros

#define _INTERPRETER_CPP_
 

Typedefs

typedef std::vector< Symbol * > madara::expression::Symbols
 

Enumerations

enum  {
  madara::expression::BOTH_PRECEDENCE = 1, madara::expression::IMPLIES_PRECEDENCE = 2, madara::expression::ASSIGNMENT_PRECEDENCE = 3, madara::expression::LOGICAL_PRECEDENCE = 4,
  madara::expression::CONDITIONAL_PRECEDENCE = 5, madara::expression::ADD_PRECEDENCE = 6, madara::expression::SUBTRACT_PRECEDENCE = 6, madara::expression::MULTIPLY_PRECEDENCE = 7,
  madara::expression::MODULUS_PRECEDENCE = 7, madara::expression::DIVIDE_PRECEDENCE = 7, madara::expression::NEGATE_PRECEDENCE = 8, madara::expression::NUMBER_PRECEDENCE = 9,
  madara::expression::VARIABLE_PRECEDENCE = 9, madara::expression::FUNCTION_PRECEDENCE = 9, madara::expression::FOR_LOOP_PRECEDENCE = 9, madara::expression::PARENTHESIS_PRECEDENCE = 10
}
 

Macro Definition Documentation

#define _INTERPRETER_CPP_

Definition at line 2 of file Interpreter.cpp.