2 #ifndef _MADARA_VISITOR_H_
3 #define _MADARA_VISITOR_H_
11 class VariableDecrementNode;
12 class VariableDivideNode;
13 class VariableIncrementNode;
14 class VariableMultiplyNode;
15 class VariableCompareNode;
17 class CompositeArrayReference;
18 class CompositeConstArray;
19 class CompositeNegateNode;
20 class CompositePostdecrementNode;
21 class CompositePostincrementNode;
22 class CompositePredecrementNode;
23 class CompositePreincrementNode;
24 class CompositeNotNode;
25 class CompositeAddNode;
26 class CompositeBothNode;
27 class CompositeSequentialNode;
28 class CompositeSquareRootNode;
29 class CompositeFunctionNode;
30 class CompositeForLoop;
31 class CompositeImpliesNode;
32 class CompositeAssignmentNode;
33 class CompositeAndNode;
34 class CompositeOrNode;
35 class CompositeEqualityNode;
36 class CompositeInequalityNode;
37 class CompositeLessThanEqualNode;
38 class CompositeLessThanNode;
39 class CompositeGreaterThanEqualNode;
40 class CompositeGreaterThanNode;
41 class CompositeSubtractNode;
42 class CompositeDivideNode;
43 class CompositeMultiplyNode;
44 class CompositeModulusNode;
45 class CompositeReturnRightNode;
46 class SystemCallClearVariable;
48 class SystemCallDeleteVariable;
50 class SystemCallExpandEnv;
51 class SystemCallExpandStatement;
52 class SystemCallFragment;
53 class SystemCallGeneric;
54 class SystemCallGetClock;
55 class SystemCallGetTime;
56 class SystemCallGetTimeSeconds;
57 class SystemCallIsinf;
58 class SystemCallLogLevel;
60 class SystemCallPrint;
61 class SystemCallPrintSystemCalls;
62 class SystemCallRandDouble;
63 class SystemCallRandInt;
64 class SystemCallReadFile;
65 class SystemCallSetClock;
66 class SystemCallSetFixed;
67 class SystemCallSetPrecision;
68 class SystemCallSetScientific;
71 class SystemCallSleep;
74 class SystemCallToBuffer;
75 class SystemCallToDouble;
76 class SystemCallToDoubles;
77 class SystemCallToHostDirs;
78 class SystemCallToInteger;
79 class SystemCallToIntegers;
80 class SystemCallToString;
82 class SystemCallWriteFile;
A composite node that encompasses addition of two expressions.
A composite node that performs a logical and.
Defines a terminal node of that references the current value stored in a variable.
A composite node that allows for variable assignment.
A composite node that evaluates both left and right expressions regardless of their evaluations.
A composite node that contains an array of values.
A composite node that divides a left expression by a right one.
A composite node that compares left and right expressions for equality.
A composite node that iterates until a condition is met.
A composite node that calls a function.
A composite node that compares left and right expressions for greater than or equal to.
A composite node that compares left and right children for greater than.
A composite node that performs an implication (inference rule)
A composite node that compares left and right children for inequality.
A composite node that compares left and right children for less than or equal to.
A composite node that compares left and right children for less than.
A composite node that divides a left expression by a right expression and returns the remainder of th...
A composite node that multiplies a left expression by a right expression.
A composite node that integrally negates a right expression.
A composite node that logically nots a right expression.
A composite node that performs a logical or.
A composite node that decrements a left expression.
A composite node that increments a right expression.
A composite node that decrements a right expression.
A composite node that increments a right expression.
A composite node that evaluates both left and right expressions regardless of their evaluations.
A composite node that evaluates both left and right expressions regardless of their evaluations.
A composite node that takes the square root of a term.
A composite node that encompasses subtraction of a right expression from a left expression.
Defines a node that contains a madara::knowledge::KnowledgeRecord::Integer value.
Defines a terminal node that contains a list.
Attempts to clear a variable.
Returns the cosine of a term in radians.
Attempts to delete a variable.
Evaluates a knowledge::KnowledgeRecord and returns the evaluation result.
Returns the expansion of a statement with environment vars.
Returns the expansion of a statement.
Returns a fragment of the knowledge record.
General purpose system call KaRL node.
Returns the system clock or a variable clock.
Returns the current time in seconds since epoch.
Returns the time in nanoseconds since epoch.
Returns the type of a specified knowledge record.
Sets or returns the current MADARA logging level.
Calculates a base term taken to a power.
Prints all supported system calls.
Prints a Knowledge Record.
Returns a random integer.
Reads a file from an user-provided file name.
Sets the system clock or a variable clock.
Sets the output format to use std::fixed.
Sets the double precision for converting doubles to a string and for printing.
Sets the output format to use std::scientific.
Returns the sin of a term in radians.
Returns the size of a specified knowledge record.
Sleeps for a certain amount of time.
Returns the square root of a term.
Returns the tangent of a term in radians.
Converts an argument into an unsigned char buffer.
Converts an argument to a double.
Converts an argument to an array of doubles.
Ensures the directory delimiters are appropriate for the host operating system (e....
Converts an argument to an integer.
Converts an argument to an array of integers.
Converts an argument to a string.
Returns the type of a specified knowledge record.
Writes a knowledge record to an user-specified file name.
Defines a terminal node of that references the current value stored in a variable.
Composite node that subtracts a variable by some right hand side.
Composite node that divides a variable by some right hand side.
Defines a terminal node of that references the current value stored in a variable.
Composite node that multiplies a variable by some right hand side.
Defines a terminal node of that references the current value stored in a variable.
Abstract base class for all visitors to all classes that derive from ComponentNode.
virtual void visit(const CompositeEqualityNode &node)=0
Visit a CompositeEqualityNode.
virtual void visit(const CompositeOrNode &node)=0
Visit a CompositeOrNode.
virtual void visit(const CompositeImpliesNode &node)=0
Visit a CompositeImpliesNode.
virtual void visit(const SystemCallSetPrecision &node)=0
Visit a SystemCallSetPrecision.
virtual void visit(const SystemCallPrintSystemCalls &node)=0
Visit a SystemCallPrintSystemCalls.
virtual void visit(const CompositeForLoop &node)=0
Visit a CompositeFunctionNode.
virtual void visit(const SystemCallToString &node)=0
Visit a SystemCallToString.
virtual void visit(const CompositeNegateNode &node)=0
Visit a CompositeNegateNode.
virtual void visit(const SystemCallGeneric &node)=0
Visit a SystemCallGetClock.
virtual void visit(const CompositePredecrementNode &node)=0
Visit a CompositePredecrementNode.
virtual void visit(const SystemCallEval &node)=0
Visit a SystemCallEval.
virtual void visit(const CompositePostdecrementNode &node)=0
Visit a CompositePostdecrementNode.
virtual void visit(const SystemCallRandDouble &node)=0
Visit a SystemCallRandDouble.
virtual void visit(const ListNode &node)=0
Visit a ListNode.
virtual void visit(const SystemCallToDouble &node)=0
Visit a SystemCallToDouble.
virtual void visit(const CompositePostincrementNode &node)=0
Visit a CompositePostincrementNode.
virtual void visit(const CompositeMultiplyNode &node)=0
Visit a CompositeMultiplyNode.
virtual void visit(const CompositeModulusNode &node)=0
Visit a CompositeModulusNode.
virtual void visit(const VariableIncrementNode &node)=0
Visit a VariableIncrementNode.
virtual void visit(const SystemCallSin &node)=0
Visit a SystemCallSin.
virtual void visit(const CompositeGreaterThanEqualNode &node)=0
Visit a CompositeLessThanEqualNode.
virtual void visit(const CompositeLessThanNode &node)=0
Visit a CompositeLessThanNode.
virtual void visit(const CompositeLessThanEqualNode &node)=0
Visit a CompositeLessThanEqualNode.
virtual void visit(const CompositeAddNode &node)=0
Visit a CompositeAddNode.
virtual void visit(const SystemCallReadFile &node)=0
Visit a SystemCallReadFile.
virtual void visit(const SystemCallIsinf &node)=0
Visit a SystemCallIsinf.
virtual void visit(const SystemCallDeleteVariable &node)=0
Visit a SystemCallDeleteVariable.
virtual void visit(const SystemCallWriteFile &node)=0
Visit a SystemCallWriteFile.
virtual void visit(const SystemCallGetTime &node)=0
Visit a SystemCallGetTime.
virtual void visit(const SystemCallSleep &node)=0
Visit a SystemCallSleep.
virtual void visit(const SystemCallFragment &node)=0
Visit a SystemCallExpandStatement.
virtual void visit(const CompositeBothNode &node)=0
Visit a CompositeBothNode.
virtual void visit(const VariableNode &node)=0
Visit a VariableNode.
virtual void visit(const CompositeSquareRootNode &node)=0
Visit a CompositeSquareRootNode.
virtual void visit(const SystemCallClearVariable &node)=0
Visit a SystemCallClearVariable.
virtual void visit(const SystemCallGetTimeSeconds &node)=0
Visit a SystemCallGetTimeSeconds.
virtual void visit(const VariableCompareNode &node)=0
Visit a VariableCompareNode.
virtual void visit(const SystemCallSetScientific &node)=0
Visit a SystemCallSetScientific.
virtual void visit(const SystemCallSetFixed &node)=0
Visit a SystemCallSetFixed.
virtual void visit(const SystemCallSetClock &node)=0
Visit a SystemCallSetClock.
virtual void visit(const VariableDecrementNode &node)=0
Visit a VariableDecrementNode.
virtual void visit(const SystemCallToBuffer &node)=0
Visit a SystemCallToBuffer.
virtual void visit(const CompositeConstArray &node)=0
Visit an array reference.
virtual void visit(const SystemCallToDoubles &node)=0
Visit a SystemCallToDoubles.
virtual void visit(const SystemCallRandInt &node)=0
Visit a SystemCallRandInt.
virtual void visit(const CompositeDivideNode &node)=0
Visit a CompositeDivideNode.
virtual void visit(const CompositeFunctionNode &node)=0
Visit a CompositeFunctionNode.
virtual void visit(const CompositeInequalityNode &node)=0
Visit a CompositeInequalityNode.
virtual void visit(const VariableMultiplyNode &node)=0
Visit a VariableMultiplyNode.
virtual void visit(const SystemCallToIntegers &node)=0
Visit a SystemCallToIntegers.
virtual void visit(const CompositePreincrementNode &node)=0
Visit a CompositePreIncrementNode.
virtual void visit(const SystemCallPrint &node)=0
Visit a SystemCallReadFile.
virtual void visit(const SystemCallGetClock &node)=0
Visit a SystemCallGetClock.
virtual void visit(const VariableDivideNode &node)=0
Visit a VariableDivideNode.
virtual void visit(const SystemCallLogLevel &node)=0
Visit a SystemCallLogLevel.
virtual void visit(const SystemCallSqrt &node)=0
Visit a SystemCallSqrt.
virtual void visit(const SystemCallToHostDirs &node)=0
Visit a SystemCallToHostDirs.
virtual void visit(const CompositeAssignmentNode &node)=0
Visit a CompositeAssignmentNode.
virtual void visit(const CompositeReturnRightNode &node)=0
Visit a CompositeReturnRightNode.
virtual void visit(const CompositeSubtractNode &node)=0
Visit a CompositeSubtractNode.
virtual void visit(const CompositeAndNode &node)=0
Visit a CompositeAndNode.
virtual void visit(const SystemCallToInteger &node)=0
Visit a SystemCallToInteger.
virtual void visit(const SystemCallCos &node)=0
Visit a SystemCallCos.
virtual void visit(const LeafNode &node)=0
Visit a LeafNode.
virtual void visit(const CompositeArrayReference &node)=0
Visit an array reference.
virtual ~Visitor(void)=0
No-op destructor to hold things together.
virtual void visit(const CompositeNotNode &node)=0
Visit a CompositeNotNode.
virtual void visit(const CompositeGreaterThanNode &node)=0
Visit a CompositeLessThanNode.
virtual void visit(const SystemCallExpandStatement &node)=0
Visit a SystemCallExpandStatement.
virtual void visit(const SystemCallTan &node)=0
Visit a SystemCallTan.
virtual void visit(const SystemCallExpandEnv &node)=0
Visit a SystemCallExpandEnv.
virtual void visit(const SystemCallPow &node)=0
Visit a SystemCallPow.
virtual void visit(const SystemCallType &node)=0
Visit a SystemCallType.
virtual void visit(const SystemCallSize &node)=0
Visit a SystemCallSize.
virtual void visit(const CompositeSequentialNode &node)=0
Visit a CompositeSequentialNode.
Copyright(c) 2020 Galois.