Package org.codehaus.janino
Class Java.BinaryOperation
- java.lang.Object
-
- org.codehaus.janino.Java.Located
-
- org.codehaus.janino.Java.Atom
-
- org.codehaus.janino.Java.Rvalue
-
- org.codehaus.janino.Java.BooleanRvalue
-
- org.codehaus.janino.Java.BinaryOperation
-
- All Implemented Interfaces:
Java.ArrayInitializerOrRvalue
,Java.ElementValue
,Java.Locatable
- Enclosing class:
- Java
public static final class Java.BinaryOperation extends Java.BooleanRvalue
Representation of all non-operand-modifying binary operations.Operations with boolean result:
- ||
- JLS7 15.24 "conditional or operation"
- &&
- JLS7 15.23 "conditional and operation"
- ==
- JLS7 15.21 "equality operation"
- !=
- JLS7 15.22 "non-equality operation"
- < > <= >=
- JLS7 15.20.1 "numerical comparison operations"
Operations with non-boolean result:
- |
- JLS7 15.22.1 "integer bitwise OR operation" and JLS7 15.22.2 "boolean logical OR operation"
- ^
- JLS7 15.22.1 "integer bitwise XOR operation" and JLS7 15.22.2 "boolean logical XOR operation"
- &
- JLS7 15.22.1 "integer bitwise AND operation" and JLS7 15.22.2 "boolean logical AND operation"
- * / %
- JLS7 15.17 "multiplicative operations"
- + -
- JLS7 15.18 "additive operations"
- << >> >>>
- JLS7 15.19 "shift operations"
-
-
Field Summary
Fields Modifier and Type Field Description Java.Rvalue
lhs
The left hand side operand.java.lang.String
operator
The operator, as aninterned
string.Java.Rvalue
rhs
The right hand side operand.-
Fields inherited from class org.codehaus.janino.Java.Located
NOWHERE
-
-
Constructor Summary
Constructors Constructor Description BinaryOperation(Location location, Java.Rvalue lhs, java.lang.String operator, Java.Rvalue rhs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,EX extends java.lang.Throwable>
Raccept(Visitor.RvalueVisitor<R,EX> visitor)
java.lang.String
toString()
java.util.Iterator<Java.Rvalue>
unrollLeftAssociation()
Transforms this binary operation into anIterator
over a left-to-right sequence ofJava.Rvalue
s.-
Methods inherited from class org.codehaus.janino.Java.Rvalue
accept, accept, accept, getEnclosingScope, getEnclosingScopeOrNull, setEnclosingScope, toRvalue
-
Methods inherited from class org.codehaus.janino.Java.Atom
toLvalue, toLvalueOrCompileException, toRvalueOrCompileException, toType, toTypeOrCompileException
-
Methods inherited from class org.codehaus.janino.Java.Located
getLocation, throwCompileException
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.codehaus.janino.Java.Locatable
getLocation, throwCompileException
-
-
-
-
Field Detail
-
lhs
public final Java.Rvalue lhs
The left hand side operand.
-
operator
public final java.lang.String operator
The operator, as aninterned
string.- See Also:
Java.BinaryOperation
-
rhs
public final Java.Rvalue rhs
The right hand side operand.
-
-
Constructor Detail
-
BinaryOperation
public BinaryOperation(Location location, Java.Rvalue lhs, java.lang.String operator, Java.Rvalue rhs)
-
-
Method Detail
-
unrollLeftAssociation
public java.util.Iterator<Java.Rvalue> unrollLeftAssociation()
Transforms this binary operation into anIterator
over a left-to-right sequence ofJava.Rvalue
s.That iterator produces two elements (the left-hand-side and the right-hand-side of this operation), or, iff the left-hand-side of this operation is itself a binary operation with the same operator, then the iterator produces the sequence of the unrolled operands.
-
accept
@Nullable public <R,EX extends java.lang.Throwable> R accept(Visitor.RvalueVisitor<R,EX> visitor) throws EX extends java.lang.Throwable
Description copied from class:Java.Rvalue
- Specified by:
accept
in classJava.Rvalue
- Throws:
EX extends java.lang.Throwable
-
-