org.extendj.ast
node type Binary

General Info

Production
Binary : Expr ::= LeftOperand:Expr RightOperand:Expr;
Type Hierarchy:
java.lang.Object
  extended by beaver.Symbol
      extended by org.extendj.ast.ASTNode<ASTNode>
          extended by org.extendj.ast.Expr
              extended by org.extendj.ast.Binary
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Iterable<ASTNode>, org.jastadd.util.PrettyPrintable
Direct Known Subclasses:
ArithmeticExpr, BitwiseExpr, LogicalExpr, RelationalExpr, ShiftExpr

Description

Source
Declared in /home/jesper/git/extendj/java4/grammar/Java.ast at line 147

Member Filters

API level:

Aspect:

Constructors

public Binary()
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 1
public Binary(Expr p0,
              Expr p1)
 
Source
Declared in /home/jesper/git/extendj/ASTNode at line 13

Attributes

@ASTNodeAnnotation.Attribute
syn java.lang.String printOp()
The operator string used for pretty printing this expression.
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrintUtil.jrag at line 270
Aspect
PrettyPrintUtil
Source
Declared in /home/jesper/git/extendj/java4/frontend/ConstantExpression.jrag at line 296
Aspect
ConstantExpression
Source
Declared in /home/jesper/git/extendj/java4/frontend/ConstantExpression.jrag at line 297
Aspect
ConstantExpression
Source
Declared in /home/jesper/git/extendj/java4/frontend/ConstantExpression.jrag at line 298
Aspect
ConstantExpression
@ASTNodeAnnotation.Attribute
syn boolean isDAafterTrue(org.extendj.ast.Variable v)
Overrides:isDAafterTrue in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 442
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDAafterFalse(org.extendj.ast.Variable v)
Overrides:isDAafterFalse in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 443
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDAafter(org.extendj.ast.Variable v)
Overrides:isDAafter in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 261
Aspect
DA
@ASTNodeAnnotation.Attribute
syn boolean isDUafter(org.extendj.ast.Variable v)
Overrides:isDUafter in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 788
Aspect
DU
@ASTNodeAnnotation.Attribute
syn boolean modifiedInScope(org.extendj.ast.Variable var)
Overrides:modifiedInScope in class Expr
Source
Declared in /home/jesper/git/extendj/java7/frontend/PreciseRethrow.jrag at line 149
Aspect
PreciseRethrow
@ASTNodeAnnotation.Attribute
inh boolean isDUbefore(org.extendj.ast.Variable v)
Overrides:isDUbefore in class Expr
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 785
Aspect
DU

Methods

public void prettyPrint(org.jastadd.util.PrettyPrinter out)
Specified by:prettyPrint in interface org.jastadd.util.PrettyPrintableOverrides:prettyPrint in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/PrettyPrint.jadd at line 187
Aspect
Java4PrettyPrint
public void createBCode(org.extendj.ast.CodeGeneration gen)
Overrides:createBCode in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 965
Aspect
CreateBCode
public void emitShiftExpr(org.extendj.ast.CodeGeneration gen)
Source
Declared in /home/jesper/git/extendj/java4/backend/CreateBCode.jrag at line 973
Aspect
CreateBCode
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.
Overrides:init$Children in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 10
protected int numChildren()
Overrides:numChildren in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 20
public boolean mayHaveRewrite()
Overrides:mayHaveRewrite in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 26
public void flushAttrCache()
Overrides:flushAttrCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 32
public void flushCollectionCache()
Overrides:flushCollectionCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 44
public void flushRewriteCache()
Overrides:flushRewriteCache in class Expr
Source
Declared in /home/jesper/git/extendj/ASTNode at line 50
public Binary clone()
             throws java.lang.CloneNotSupportedException
Overrides:clone in class Expr
Throws:
java.lang.CloneNotSupportedException
Source
Declared in /home/jesper/git/extendj/ASTNode at line 56
@Deprecated
public abstract Binary fullCopy()
Deprecated. Please use treeCopy or treeCopyNoTransform instead

Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.

Specified by:fullCopy in class Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 67
public abstract Binary treeCopyNoTransform()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
Specified by:treeCopyNoTransform in class Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 75
public abstract Binary treeCopy()
Create a deep copy of the AST subtree at this node. The subtree of this node is traversed to trigger rewrites before copy. The copy is dangling, i.e. has no parent.
Specified by:treeCopy in class Expr
Returns:
dangling copy of the subtree at this node
Source
Declared in /home/jesper/git/extendj/ASTNode at line 83
public void setLeftOperand(Expr node)
Replaces the LeftOperand child.
Parameters:
node - The new node to replace the LeftOperand child.
Retrieves the LeftOperand child.
Returns:
The current node used as the LeftOperand child.
Retrieves the LeftOperand child.

This method does not invoke AST transformations.

Returns:
The current node used as the LeftOperand child.
public void setRightOperand(Expr node)
Replaces the RightOperand child.
Parameters:
node - The new node to replace the RightOperand child.
Retrieves the RightOperand child.
Returns:
The current node used as the RightOperand child.
Retrieves the RightOperand child.

This method does not invoke AST transformations.

Returns:
The current node used as the RightOperand child.
public boolean Define_isDAbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDAbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 255
protected boolean canDefine_isDAbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_isDUbefore(ASTNode caller,
                                 ASTNode child,
                                 org.extendj.ast.Variable v)
Overrides:Define_isDUbefore in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java4/frontend/DefiniteAssignment.jrag at line 779
protected boolean canDefine_isDUbefore(ASTNode caller,
                                       ASTNode child,
                                       org.extendj.ast.Variable v)
public boolean Define_assignmentContext(ASTNode caller,
                                        ASTNode child)
Overrides:Define_assignmentContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 196
protected boolean canDefine_assignmentContext(ASTNode caller,
                                              ASTNode child)
public boolean Define_invocationContext(ASTNode caller,
                                        ASTNode child)
Overrides:Define_invocationContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 197
protected boolean canDefine_invocationContext(ASTNode caller,
                                              ASTNode child)
public boolean Define_castContext(ASTNode caller,
                                  ASTNode child)
Overrides:Define_castContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 198
protected boolean canDefine_castContext(ASTNode caller,
                                        ASTNode child)
public boolean Define_stringContext(ASTNode caller,
                                    ASTNode child)
Overrides:Define_stringContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 199
protected boolean canDefine_stringContext(ASTNode caller,
                                          ASTNode child)
public boolean Define_numericContext(ASTNode caller,
                                     ASTNode child)
Overrides:Define_numericContext in class ASTNode<ASTNode>
Source
Declared in /home/jesper/git/extendj/java8/frontend/TargetType.jrag at line 200
protected boolean canDefine_numericContext(ASTNode caller,
                                           ASTNode child)
Overrides:rewriteTo in class Expr

Fields

protected int isConstant_visited
protected boolean isConstant_computed
protected boolean isConstant_initialized
protected boolean isConstant_value
protected java.util.Map isDAafterTrue_Variable_values
protected java.util.Map isDAafterFalse_Variable_values
protected java.util.Map isDAafter_Variable_values
protected java.util.Map isDUafter_Variable_values
protected java.util.Map isDUbefore_Variable_values

Inherited Members

Attributes inherited from org.extendj.ast.Expr

Attributes inherited from org.extendj.ast.ASTNode

Methods inherited from class org.extendj.ast.Expr

Methods inherited from class org.extendj.ast.ASTNode

Methods inherited from class beaver.Symbol

getColumn
getEnd
getId
getLine
getStart
makePosition

Methods inherited from class java.lang.Object

equals
finalize
getClass
hashCode
notify
notifyAll
wait
wait
wait

Fields inherited from org.extendj.ast.Expr

Fields inherited from org.extendj.ast.ASTNode

Fields inherited from beaver.Symbol

end
id
start
value