|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectavrora.core.isdl.ast.Expr
avrora.core.isdl.ast.Arith
avrora.core.isdl.ast.Arith.BinOp
The BinOp inner class represents an operation on
two integers with an infix binary operation. For example, addition,
multiplication, bitwise and, and such operations are binary infix
and therefore subclasses of this class.
| Nested Class Summary |
| Nested classes inherited from class avrora.core.isdl.ast.Arith |
Arith.AddExpr, Arith.AndExpr, Arith.BinOp, Arith.CompExpr, Arith.DivExpr, Arith.MulExpr, Arith.NegExpr, Arith.OrExpr, Arith.ShiftLeftExpr, Arith.ShiftRightExpr, Arith.SubExpr, Arith.UnOp, Arith.XorExpr |
| Field Summary | |
Expr |
left
The left field stores a reference to the expression
that is the left operand of the binary operation. |
java.lang.String |
operation
The operation field stores the string name of the
operation of this binary operation. |
int |
precedence
The precedence field stores the precedence level of
this binary operation. |
Expr |
right
The left field stores a reference to the expression
that is the right operand of the binary operation. |
| Fields inherited from class avrora.core.isdl.ast.Expr |
PREC_A_ADD, PREC_A_AND, PREC_A_MUL, PREC_A_OR, PREC_A_SHIFT, PREC_A_XOR, PREC_L_AND, PREC_L_EQU, PREC_L_OR, PREC_L_REL, PREC_L_XOR, PREC_TERM, PREC_UN |
| Constructor Summary | |
Arith.BinOp(int p,
Expr l,
java.lang.String o,
Expr r)
The constructor of the BinOp class initializes the
public final fields that form the structure of this expression. |
|
| Method Summary | |
void |
accept(ExprVisitor v)
The accept() method implements one half of the visitor
pattern so that client visitors can traverse the syntax tree easily
and in an extensible way. |
int |
getPrecedence()
The getPrecedence() method gets the binding precedence for
this expression. |
boolean |
isConstantExpr()
The isConstantExpr() method tests whether this expression
is a constant expression (i.e. it is reducable to a constant and has
no references to variables, maps, etc). |
java.lang.String |
toString()
The toString() method recursively converts this expression
to a string. |
| Methods inherited from class avrora.core.isdl.ast.Expr |
accept, accept, getBitWidth, innerString, isBitRangeExpr, isLiteral, isMap, isVariable, tokenToBool, tokenToInt |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public final java.lang.String operation
operation field stores the string name of the
operation of this binary operation. For example, '+' represents
addition.
public final Expr left
left field stores a reference to the expression
that is the left operand of the binary operation.
public final Expr right
left field stores a reference to the expression
that is the right operand of the binary operation.
public final int precedence
precedence field stores the precedence level of
this binary operation. This is used to compute when to surround
inner expressions with parentheses when printing code in infix
notation.
| Constructor Detail |
public Arith.BinOp(int p,
Expr l,
java.lang.String o,
Expr r)
BinOp class initializes the
public final fields that form the structure of this expression.
p - the precedence of this expressionl - the left expression operando - the string name of the operationr - the right expression operand| Method Detail |
public boolean isConstantExpr()
isConstantExpr() method tests whether this expression
is a constant expression (i.e. it is reducable to a constant and has
no references to variables, maps, etc).
isConstantExpr in class Exprpublic void accept(ExprVisitor v)
accept() method implements one half of the visitor
pattern so that client visitors can traverse the syntax tree easily
and in an extensible way.
accept in class Exprv - the visitor to acceptpublic java.lang.String toString()
toString() method recursively converts this expression
to a string. For binary operations, inner expressions will be nested
within parentheses if their precedence is lower than the precedence
of the parent expression.
public int getPrecedence()
getPrecedence() method gets the binding precedence for
this expression. This is used to compute when inner expressions must be
nested within parentheses in order to preserve the implied order of
evaluation.
getPrecedence in class Expr
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||