public class InfixExpression extends Expression
InfixExpression: Expression InfixOperator Expression { InfixOperator Expression }
Modifier and Type | Class and Description |
---|---|
static class |
InfixExpression.Operator
Infix operators (typesafe enumeration).
|
Modifier and Type | Field and Description |
---|---|
static ChildListPropertyDescriptor |
EXTENDED_OPERANDS_PROPERTY
The "extendedOperands" structural property of this node type (element type:
Expression ). |
static ChildPropertyDescriptor |
LEFT_OPERAND_PROPERTY
The "leftOperand" structural property of this node type (child type:
Expression ). |
static SimplePropertyDescriptor |
OPERATOR_PROPERTY
The "operator" structural property of this node type (type:
InfixExpression.Operator ). |
static ChildPropertyDescriptor |
RIGHT_OPERAND_PROPERTY
The "rightOperand" structural property of this node type (child type:
Expression ). |
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
Modifier and Type | Method and Description |
---|---|
List |
extendedOperands()
Returns the live list of extended operands.
|
Expression |
getLeftOperand()
Returns the left operand of this infix expression.
|
InfixExpression.Operator |
getOperator()
Returns the operator of this infix expression.
|
Expression |
getRightOperand()
Returns the right operand of this infix expression.
|
boolean |
hasExtendedOperands()
Returns where there are any extended operands.
|
static List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
void |
setLeftOperand(Expression expression)
Sets the left operand of this infix expression.
|
void |
setOperator(InfixExpression.Operator operator)
Sets the operator of this infix expression.
|
void |
setRightOperand(Expression expression)
Sets the right operand of this infix expression.
|
resolveBoxing, resolveConstantExpressionValue, resolveTypeBinding, resolveUnboxing
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
public static final ChildPropertyDescriptor LEFT_OPERAND_PROPERTY
Expression
).public static final SimplePropertyDescriptor OPERATOR_PROPERTY
InfixExpression.Operator
).public static final ChildPropertyDescriptor RIGHT_OPERAND_PROPERTY
Expression
).public static final ChildListPropertyDescriptor EXTENDED_OPERANDS_PROPERTY
Expression
).public static List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public InfixExpression.Operator getOperator()
public void setOperator(InfixExpression.Operator operator)
operator
- the infix operatorIllegalArgumentException
- if the argument is incorrectpublic Expression getLeftOperand()
public void setLeftOperand(Expression expression)
expression
- the left operand nodeIllegalArgumentException
- if:
public Expression getRightOperand()
public void setRightOperand(Expression expression)
expression
- the right operand nodeIllegalArgumentException
- if:
public boolean hasExtendedOperands()
true
if there are one or more extended operands,
and false
if there are no extended operandspublic List extendedOperands()
The extended operands is the preferred way of representing deeply nested
expressions of the form L op R op R2 op R3...
where
the same operator appears between all the operands (the most
common case being lengthy string concatenation expressions). Using
the extended operands keeps the trees from getting too deep; this
decreases the risk is running out of thread stack space at runtime
when traversing such trees.
((a + b) + c) + d would be translated to:
leftOperand: a
rightOperand: b
extendedOperands: {c, d}
operator: +
Expression
)
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.