|
|
| ArithmeticAssignmentNode (const SourcePos &sourcePos, AsebaBinaryOperator op, Node *left, Node *right) |
| | Constructor.
|
| |
|
virtual ArithmeticAssignmentNode * | shallowCopy () |
| | Return a shallow copy of the object (children point to the same objects)
|
| |
|
virtual void | checkVectorSize () const |
| | Check the consistency in vectors' size.
|
| |
|
virtual Node * | expandAbstractNodes (std::wostream *dump) |
| | Expand "left (op)= right" to "left = left (op) right".
|
| |
| 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.
|
| |
|
| 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.
|
| |
|
| 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 | 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
|
| |
Node for operations like "vector (op)= something" Will expand to "vector = vector (op) something" children[0] is a MemoryVectorNode children[1] is whatever Node for the right operand.