Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## avrora.syntax
Class Expr.BinOp

    java.lang.Object
      avrora.syntax.ASTNode
          avrora.syntax.Expr
              avrora.syntax.Expr.BinOp

Enclosing class:
  Expr

public static class Expr.BinOp
extends Expr

The `BinOp` class represents a simple binary arithmetic operator such as addition, multiplication, etc. It contains two internal expressions, the left and right.

Nested Class Summary

Nested classes inherited from class avrora.syntax.Expr
`Expr.BinOp, Expr.CharLiteral, Expr.Constant, Expr.Func, Expr.RelativeAddress, Expr.StringLiteral, Expr.Term, Expr.UnOp, Expr.Variable`

Field Summary
`Expr` | `left` The `left` field records an expression that represents the operand on the left side of the operator.
`AbstractToken` | `op` The `op` field records the token that corresponds to the actual arithmetic operator.
`Expr` | `right` The `right` field records an expression that represents the operand on the right side of the operator.

Constructor Summary
`Expr.BinOp(AbstractToken tok, Expr l, Expr r)`

Method Summary
`int` | `evaluate(int currentByteAddress, Context c)` The `evaluate()` method computes the value of the expression in this context and returns its value.
`AbstractToken` | `getLeftMostToken()` The `getLeftMostToken()` method gets the first token associated with the abstract syntax tree node.
`AbstractToken` | `getRightMostToken()` The `getRightMostToken()` method gets the last token associated with the abstract syntax tree node.
`java.lang.String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### op

    public final AbstractToken op

  The `op` field records the token that corresponds to the actual arithmetic operator.

### left

    public final Expr left

  The `left` field records an expression that represents the operand on the left side of the operator.

### right

    public final Expr right

  The `right` field records an expression that represents the operand on the right side of the operator.

Constructor Detail

### Expr.BinOp

    public Expr.BinOp(AbstractToken tok,
                      Expr l,
                      Expr r)

Method Detail

### evaluate

    public int evaluate(int currentByteAddress,
                        Context c)

  The `evaluate()` method computes the value of the expression in this context and returns its value. This implementation works straightforwardly by first evaluating the left operand, then the right, and then computing the result of the arithmetic operation.

  Specified by:
    `evaluate` in class `Expr`
  Parameters:
    `currentByteAddress` - the current byte address within the program
    `c` - the context in which to evaluate this expression
  Returns:
    the value of the expression as a 32-bit integer

### getLeftMostToken

    public AbstractToken getLeftMostToken()

  Description copied from class: `ASTNode`
  The `getLeftMostToken()` method gets the first token associated with the abstract syntax tree node.

  Specified by:
    `getLeftMostToken` in class `ASTNode`
  Returns:
    an `AbstractToken` instance representing the first token that is a part of this syntactic item.

### getRightMostToken

    public AbstractToken getRightMostToken()

  Description copied from class: `ASTNode`
  The `getRightMostToken()` method gets the last token associated with the abstract syntax tree node.

  Specified by:
    `getRightMostToken` in class `ASTNode`
  Returns:
    an `AbstractToken` instance representing the last token that is a part of this syntactic item.

### toString

    public java.lang.String toString()

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD