Aseba::BinaryArithmeticNode Struct Reference
[AESL Compiler]

#include <tree.h>

Inheritance diagram for Aseba::BinaryArithmeticNode:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 BinaryArithmeticNode (const SourcePos &sourcePos, AsebaBinaryOperator op, Node *left, Node *right)
 Constructor.
 BinaryArithmeticNode (const SourcePos &sourcePos)
void deMorganNotRemoval ()
 Recursively apply de Morgan law as long as nodes are logic operations, and then invert comparisons.
virtual void emit (PreLinkBytecode &bytecodes) const
 Generate bytecode.
virtual unsigned getStackDepth () const
 Return the stack depth requirement for this node and its children.
virtual Nodeoptimize (std::ostream *dump)
 Optimize this node, return the optimized node.
virtual std::string toNodeName () const
 Return a string representation of the name of this node.
virtual std::string toString () const
 Return a string representation of this node.
virtual ReturnType typeCheck () const
 Typecheck this node, throw an exception if there is any type violation.

Static Public Member Functions

static BinaryArithmeticNodefromAddExpression (const SourcePos &sourcePos, Compiler::Token::Type op, Node *left, Node *right)
 Create a binary arithmetic node for add/sub operation op.
static BinaryArithmeticNodefromComparison (const SourcePos &sourcePos, Compiler::Token::Type op, Node *left, Node *right)
 Create a binary arithmetic node for comparaison operation op.
static BinaryArithmeticNodefromMultExpression (const SourcePos &sourcePos, Compiler::Token::Type op, Node *left, Node *right)
 Create a binary arithmetic node for mult/div/mod operation op.
static BinaryArithmeticNodefromShiftExpression (const SourcePos &sourcePos, Compiler::Token::Type op, Node *left, Node *right)
 Create a binary arithmetic node for shift operation op.

Public Attributes

AsebaBinaryOperator op
 operator

Detailed Description

Node for binary arithmetic. children[0] is left expression children[1] is right expression

Definition at line 261 of file tree.h.


Constructor & Destructor Documentation

Aseba::BinaryArithmeticNode::BinaryArithmeticNode ( const SourcePos sourcePos  )  [inline]

Definition at line 265 of file tree.h.


Member Function Documentation

virtual std::string Aseba::BinaryArithmeticNode::toNodeName (  )  const [inline, virtual]

Return a string representation of the name of this node.

Implements Aseba::Node.

Definition at line 275 of file tree.h.


Member Data Documentation

operator

Definition at line 263 of file tree.h.


The documentation for this struct was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


asebaros
Author(s): $author
autogenerated on Mon Sep 5 08:42:12 2011