Klasse BinaryExpression

Alle implementierten Schnittstellen:
OperatorIds, TypeConstants, TypeIds
Bekannte direkte Unterklassen:
AND_AND_Expression, CombinedBinaryExpression, EqualExpression, OR_OR_Expression

public class BinaryExpression extends OperatorExpression
  • Felddetails

  • Konstruktordetails

  • Methodendetails

    • analyseCode

      public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
      Setzt außer Kraft:
      analyseCode in Klasse Expression
    • updateFlowOnBooleanResult

      protected void updateFlowOnBooleanResult(FlowInfo flowInfo, boolean result)
      Beschreibung aus Klasse kopiert: Expression
      Back-propagation of flow info: before analysing a branch where a given condition is known to hold true/false respectively, ask the condition to contribute its information to the given flowInfo.
      Setzt außer Kraft:
      updateFlowOnBooleanResult in Klasse Expression
      Parameter:
      flowInfo - the info to be used for analysing the branch
      result - condition result that would cause entering the branch
    • computeConstant

      public void computeConstant(BlockScope scope, int leftId, int rightId)
    • optimizedBooleanConstant

      public Constant optimizedBooleanConstant()
      Beschreibung aus Klasse kopiert: Expression
      Constant usable for bytecode pattern optimizations, but cannot be inlined since it is not strictly equivalent to the definition of constant expressions. In particular, some side-effects may be required to occur (only the end value is known).
      Setzt außer Kraft:
      optimizedBooleanConstant in Klasse Expression
      Gibt zurück:
      Constant known to be of boolean type
    • generateCode

      public void generateCode(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
      Code generation for a binary operation
      Setzt außer Kraft:
      generateCode in Klasse Expression
      Parameter:
      currentScope - org.eclipse.jdt.internal.compiler.lookup.BlockScope
      codeStream - org.eclipse.jdt.internal.compiler.codegen.CodeStream
      valueRequired - boolean
    • generateOptimizedBoolean

      public void generateOptimizedBoolean(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean operator code generation Optimized operations are: Ungültige Eingabe: "<", Ungültige Eingabe: "<"=, >, >=, Ungültige Eingabe: "&", |, ^
      Setzt außer Kraft:
      generateOptimizedBoolean in Klasse Expression
      Parameter:
      currentScope -
      codeStream -
      trueLabel -
      falseLabel -
      valueRequired -
    • generateOptimizedGreaterThan

      public void generateOptimizedGreaterThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for >
    • generateOptimizedGreaterThanOrEqual

      public void generateOptimizedGreaterThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for >=
    • generateOptimizedLessThan

      public void generateOptimizedLessThan(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for Ungültige Eingabe: "<"
    • generateOptimizedLessThanOrEqual

      public void generateOptimizedLessThanOrEqual(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for Ungültige Eingabe: "<"=
    • generateLogicalAnd

      public void generateLogicalAnd(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
      Boolean generation for Ungültige Eingabe: "&"
    • generateLogicalOr

      public void generateLogicalOr(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
      Boolean generation for |
    • generateLogicalXor

      public void generateLogicalXor(BlockScope currentScope, CodeStream codeStream, boolean valueRequired)
      Boolean generation for ^
    • generateOptimizedLogicalAnd

      public void generateOptimizedLogicalAnd(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for Ungültige Eingabe: "&"
    • generateOptimizedLogicalOr

      public void generateOptimizedLogicalOr(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for |
    • generateOptimizedLogicalXor

      public void generateOptimizedLogicalXor(BlockScope currentScope, CodeStream codeStream, BranchLabel trueLabel, BranchLabel falseLabel, boolean valueRequired)
      Boolean generation for ^
    • buildStringForConcatation

      public void buildStringForConcatation(BlockScope blockScope, CodeStream codeStream, int typeID, StringBuilder recipe, List<TypeBinding> argTypes)
      Setzt außer Kraft:
      buildStringForConcatation in Klasse Expression
    • generateOptimizedStringConcatenation

      public void generateOptimizedStringConcatenation(BlockScope blockScope, CodeStream codeStream, int typeID)
      Setzt außer Kraft:
      generateOptimizedStringConcatenation in Klasse Expression
    • generateOptimizedStringConcatenationCreation

      public void generateOptimizedStringConcatenationCreation(BlockScope blockScope, CodeStream codeStream, int typeID)
      Setzt außer Kraft:
      generateOptimizedStringConcatenationCreation in Klasse Expression
    • isCompactableOperation

      public boolean isCompactableOperation()
      Setzt außer Kraft:
      isCompactableOperation in Klasse Expression
    • optimizedBooleanConstant

      public void optimizedBooleanConstant(int leftId, int operator, int rightId)
    • printExpressionNoParenthesis

      public StringBuffer printExpressionNoParenthesis(int indent, StringBuffer output)
      Angegeben von:
      printExpressionNoParenthesis in Klasse OperatorExpression
    • collectPatternVariablesToScope

      public void collectPatternVariablesToScope(LocalVariableBinding[] variables, BlockScope scope)
      Setzt außer Kraft:
      collectPatternVariablesToScope in Klasse Expression
    • addPatternVariables

      public void addPatternVariables(BlockScope scope, CodeStream codeStream)
      Setzt außer Kraft:
      addPatternVariables in Klasse Expression
    • containsPatternVariable

      public boolean containsPatternVariable()
      Setzt außer Kraft:
      containsPatternVariable in Klasse Statement
    • resolveType

      public TypeBinding resolveType(BlockScope scope)
      Beschreibung aus Klasse kopiert: Expression
      Resolve the type of this expression in the context of a blockScope
      Setzt außer Kraft:
      resolveType in Klasse Expression
      Parameter:
      scope -
      Gibt zurück:
      Return the actual type of this expression after resolution
    • traverse

      public void traverse(ASTVisitor visitor, BlockScope scope)
      Beschreibung aus Klasse kopiert: Expression
      Traverse an expression in the context of a blockScope
      Setzt außer Kraft:
      traverse in Klasse Expression
      Parameter:
      visitor -
      scope -