|
Aseba
1.5.5
|
Node for operations like "vector(op)", may be ++ or – Will expand to "vector (op)= [1,...,1]" children[0] is a MemoryVectorNode. More...
#include <tree.h>
Public Member Functions | |
| UnaryArithmeticAssignmentNode (const SourcePos &sourcePos, Compiler::Token::Type token, Node *memory) | |
| Constructor. | |
| virtual UnaryArithmeticAssignmentNode * | shallowCopy () |
| Return a shallow copy of the object (children point to the same objects) | |
| virtual Node * | expandAbstractNodes (std::wostream *dump) |
| Expand "vector (opop)" to "vector (op)= 1", and then call for the expansion of this last expression. | |
| virtual Node * | expandVectorialNodes (std::wostream *dump, Compiler *compiler=0, unsigned int index=0) |
| Third pass to expand vectorial operations into mutliple scalar ones. More... | |
| virtual std::wstring | toWString () const |
| Return a string representation of this node. | |
| virtual std::wstring | toNodeName () const |
| Return a string representation of the name of this node. | |
Public Member Functions inherited from Aseba::AbstractTreeNode | |
| AbstractTreeNode (const SourcePos &sourcePos) | |
| Constructor. | |
| virtual ReturnType | typeCheck (Compiler *compiler) |
| Typecheck this node, throw an exception if there is any type violation. | |
| virtual Node * | optimize (std::wostream *dump) |
| Optimize this node, return the optimized node. | |
| virtual unsigned | getStackDepth () const |
| Return the stack depth requirement for this node and its children. | |
| virtual void | emit (PreLinkBytecode &bytecodes) const |
| Generate bytecode. | |
Public Member Functions inherited from Aseba::Node | |
| Node (const SourcePos &sourcePos) | |
| Constructor. | |
| virtual | ~Node () |
| Destructor, delete all children. | |
| virtual Node * | deepCopy () |
| Return a deep copy of the object (children are also copied) | |
| virtual void | checkVectorSize () const |
| Check the consistency in vectors' size. | |
| virtual void | dump (std::wostream &dest, unsigned &indent) const |
| Dump this node and the rest of the tree. | |
| std::wstring | typeName (const Node::ReturnType &type) const |
| Return the name of a type. | |
| void | expectType (const Node::ReturnType &expected, const Node::ReturnType &type) const |
| Check for a specific type, throw an exception otherwise. | |
| virtual unsigned | getVectorAddr () const |
| return the address of the left-most operand, or E_NOVAL if none | |
| virtual unsigned | getVectorSize () const |
| return the children's size, check for equal size, or E_NOVAL if no child | |
Public Attributes | |
| AsebaBinaryOperator | arithmeticOp |
| operator | |
Public Attributes inherited from Aseba::Node | |
| NodesVector | children |
| children of this node | |
| SourcePos | sourcePos |
| position is source | |
Additional Inherited Members | |
Public Types inherited from Aseba::Node | |
| enum | ReturnType { TYPE_UNIT = 0, TYPE_BOOL, TYPE_INT } |
| A type a node can return. | |
| enum | MemoryErrorCode { E_NOVAL = UINT_MAX } |
| typedef std::vector< Node * > | NodesVector |
| Vector for children of a node. | |
Node for operations like "vector(op)", may be ++ or – Will expand to "vector (op)= [1,...,1]" children[0] is a MemoryVectorNode.
|
inlinevirtual |
Third pass to expand vectorial operations into mutliple scalar ones.
Generic implementation for non-vectorial nodes.
Reimplemented from Aseba::Node.
References Aseba::Node::toWString().
1.8.11