Package sc.lang.java
Class TwoOperatorExpression
- java.lang.Object
-
- sc.lang.SemanticNode
-
- sc.lang.java.JavaSemanticNode
-
- sc.lang.java.Definition
-
- sc.lang.java.Statement
-
- sc.lang.java.Expression
-
- sc.lang.java.TwoOperatorExpression
-
- All Implemented Interfaces:
ISemanticNode
,ISrcStatement
,IUserDataNode
,IClassBodyStatement
,IDefinition
,ITypedObject
,IValueNode
,ILifecycle
- Direct Known Subclasses:
AssignmentExpression
public abstract class TwoOperatorExpression extends Expression
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class sc.lang.java.Statement
Statement.ErrorRangeInfo, Statement.RuntimeStatus
-
Nested classes/interfaces inherited from class sc.lang.java.JavaSemanticNode
JavaSemanticNode.DepTypeCtx, JavaSemanticNode.DepTypeMode, JavaSemanticNode.MemberCache, JavaSemanticNode.MemberType
-
-
Field Summary
Fields Modifier and Type Field Description Expression
lhs
java.lang.String
operator
Expression
rhs
-
Fields inherited from class sc.lang.java.Expression
bindingDirection, bindingStatement, inactive, nestedBinding, replacedByStatement, UnknownReferredType
-
Fields inherited from class sc.lang.java.Statement
childNestingDepth, errorArgs, excluded, fromStatement
-
Fields inherited from class sc.lang.java.Definition
modifiers, overrides
-
Fields inherited from class sc.lang.java.JavaSemanticNode
debugDisablePrettyToString, STOP_SEARCHING_SENTINEL
-
Fields inherited from class sc.lang.SemanticNode
debugDiffTrace, initialized, PARENT_NODE_PROPERTY, parentNode, PARSE_NODE_PROPERTY, parseletId, parseNode, parseNodeInvalid, processed, started, transformed, validated
-
Fields inherited from interface sc.lang.ISemanticNode
CopyAll, CopyIndependent, CopyInitLevels, CopyNormal, CopyParseNode, CopyReplace, CopyState, CopyTransformed, SkipParseNode
-
-
Constructor Summary
Constructors Constructor Description TwoOperatorExpression()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBreakpointNodes(java.util.List<ISrcStatement> res, ISrcStatement srcStatement)
Adds all of the generated statements to the resulting list, for the case where more than one fromStatement points to the same src statement.void
addDependentTypes(java.util.Set<java.lang.Object> types, JavaSemanticNode.DepTypeCtx mode)
void
changeExpressionsThis(TypeDeclaration td, TypeDeclaration outer, java.lang.String newName)
void
evalBindingArgs(java.util.List<java.lang.Object> bindArgs, boolean isStatic, java.lang.Class expectedType, ExecutionContext ctx)
boolean
matchesStatement(Statement other)
boolean
refreshBoundTypes(int flags)
void
setAccessTimeForRefs(long time)
void
setBindingInfo(BindingDirection dir, Statement dest, boolean nested)
Propagates the binding information to nested expressionsvoid
transformBindingArgs(SemanticNodeList<Expression> bindArgs, sc.lang.java.Expression.BindDescriptor bd)
Produces binding arguments for the operator and the two nested bindingsStatement
transformToJS()
void
visitTypeReferences(CycleInfo info, TypeContext ctx)
overridden by nodes to visit values in the reference chain-
Methods inherited from class sc.lang.java.Expression
addChildBodyStatements, addInitStatements, applyJSConversion, canInsertStatementBefore, canMakeBindable, changeToRHS, clearInferredType, convertToSetMethod, createBindingParameters, createFromValue, createImportedIdentExpr, deepCopy, evalBinding, evalBindingParameters, evalBindingParametersWithThis, evalDouble, evalLong, exec, findFromStatement, formatExprToJS, getAbsoluteGenericTypeName, getBindingTypeName, getBodyStatements, getGenericArgumentType, getGenericType, getGenericTypeName, getLHSAssignmentTyped, getMethodTypeArguments, getNodeErrorText, getNodeWarningText, getNotFoundError, getParentReferenceType, getParentReferenceTypeExpression, getPrimitiveValue, getReferencePropertyName, getRuntimeClass, getUnwrappedExpr, getUserVisibleName, hasInferredType, initBinding, inNamedPropertyMethod, inObjectGetMethod, inPropertyMethodForDef, isConstant, isDeclaredConstant, isInferredFinal, isInferredSet, isLeafStatement, isReferenceInitializer, isReferenceValueObject, isSettableExpr, isSimpleReference, isStaticTarget, isVoidType, needsParenWrapper, needsSetMethod, needsTransform, parse, producesHtml, propagatesInferredType, setAssignment, setInferredType, setValue, toDefinitionString, toGenerateString, toLanguageString, toSafeLanguageString, toString, transform, transformBinding
-
Methods inherited from class sc.lang.java.Statement
addMappingForSrcStatement, addMappingForSrcStatement, addMappingForStatement, addMemberByName, addMembersByName, addNodeCompletions, addReturnStatements, addStatementNodeCompletions, addToFileLineIndex, callsSuper, callsSuperMethod, callsThis, checkFromStatementRef, childIsTopLevelStatement, clearDynFields, clearTransformed, collectConstructorPropInit, collectReferenceInitializers, conflictsWith, displayError, displayFormattedError, displayRangeError, displayTypeError, evalRemoteExprs, execForRuntime, execSys, findStatement, formatToJS, getBuildInitExpression, getChildNestingDepth, getComment, getConstrArgs, getCurrentMethod, getFromStatement, getIndentStr, getNestingDepth, getNodeContainsPart, getNodeErrorRange, getNumStatementLines, getRuntimeStatus, getSrcStatement, getStatementTerminator, getUserData, hasErrors, initDynStatement, initDynStatement, initDynStatements, isIncompleteStatement, isLabeled, isLineStatement, markFixedSuper, modifyDefinition, needsEnclosingClass, setComment, setFromStatement, setUserData, stop, updateFromStatementRef
-
Methods inherited from class sc.lang.java.Definition
addInheritedAnnotationProcessor, addModifier, getAccessLevel, getAnnotation, getAnnotations, getAnnotationValueKey, getComputedModifiers, getDefinitionProcessors, getEnclosingTypeName, getExtraModifiers, getInternalAccessLevel, getModifierFlags, getRepeatingAnnotation, getScope, getScopeDefinition, getScopeName, getScopeProcessor, hasAnnotation, hasModifier, init, isDefaultSync, mergeModifiers, modifiersToString, process, processModifiers, removeAnnotation, setAnnotations, setModifierFlags, start, startModifiers, transformDefaultModifier, useDefaultModifier, validate
-
Methods inherited from class sc.lang.java.JavaSemanticNode
addDependentType, applyPartialValue, declaresConstructor, definesConstructor, definesMember, definesMethod, definesType, detectCycles, displayVerboseWarning, displayWarning, findMember, findMemberOwner, findMethod, findType, findType, getDependencyDisabledText, getEnclosingBlockStatement, getEnclosingIMethod, getEnclosingIType, getEnclosingMethod, getEnclosingMethod, getEnclosingStatement, getEnclosingTag, getEnclosingTemplate, getEnclosingType, getExecMode, getImportedTypeName, getJavaLanguage, getJavaModel, getLayeredSystem, getMessageString, getRootTag, getRootType, getStructuralEnclosingType, isCollapsibleNode, isDynamicType, isStatic, needsDataBinding, refreshNode, runtimeError, suggestCompletions, toFileString, transformTemplate
-
Methods inherited from class sc.lang.SemanticNode
changeLanguage, clearInitialized, clearParseNode, clearStarted, computeNearString, containsChild, deepEquals, diffNode, ensureValidated, equals, formatLeftParenDelegateToParent, formatSpaceBeforeAngleBracket, getAnyChildParseNode, getChildAtIndex, getEnclosingSrcStatement, getLanguageModel, getNodeCount, getParentNode, getParseErrorNode, getParseletId, getParseNode, getRootNode, getStartIndex, getStopSemanticProps, getTransformed, hashCode, indexOfChild, isInitialized, isParseNodeValid, isProcessed, isSemanticChildValue, isSemanticProperty, isSemanticProperty, isStarted, isTrailingSrcStatement, isValidated, regenerate, regenerateIfTracking, removeChild, replaceChild, restoreParseNode, restoreParseNode, sameSrcLocation, serialize, setParentNode, setParseErrorNode, setParselet, setParseletId, setParseNode, setParseNodeValid, setProperty, setProperty, spaceAfterParen, styleNode, styleNode, toDeclarationString, toDefinitionString, toDefinitionString, toHeaderString, toLanguageString, toLocationString, toLocationString, toLocationString, toModelString, toModelString, validateParseNode
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface sc.lang.java.IDefinition
getEnclosingIType
-
Methods inherited from interface sc.lang.ISemanticNode
changeLanguage, clearInitialized, clearParseNode, clearStarted, containsChild, deepEquals, diffNode, getChildAtIndex, getDependencyDisabledText, getNodeCount, getParentNode, getParseErrorNode, getParseletId, getParseNode, getRootNode, getTransformed, indexOfChild, isInitialized, isParseNodeValid, isSemanticChildValue, isStarted, isTrailingSrcStatement, isValidated, process, refreshNode, regenerate, regenerateIfTracking, removeChild, replaceChild, restoreParseNode, serialize, setParentNode, setParseErrorNode, setParseletId, setParseNode, setParseNodeValid, styleNode, toHeaderString, toLanguageString, toModelString, validateParseNode
-
Methods inherited from interface sc.lang.java.ITypedObject
getTypeDeclaration
-
Methods inherited from interface sc.lang.java.IValueNode
eval
-
-
-
-
Field Detail
-
lhs
public Expression lhs
-
operator
public java.lang.String operator
-
rhs
public Expression rhs
-
-
Method Detail
-
transformBindingArgs
public void transformBindingArgs(SemanticNodeList<Expression> bindArgs, sc.lang.java.Expression.BindDescriptor bd)
Produces binding arguments for the operator and the two nested bindings- Overrides:
transformBindingArgs
in classExpression
-
evalBindingArgs
public void evalBindingArgs(java.util.List<java.lang.Object> bindArgs, boolean isStatic, java.lang.Class expectedType, ExecutionContext ctx)
- Overrides:
evalBindingArgs
in classExpression
-
setBindingInfo
public void setBindingInfo(BindingDirection dir, Statement dest, boolean nested)
Propagates the binding information to nested expressions- Overrides:
setBindingInfo
in classExpression
-
changeExpressionsThis
public void changeExpressionsThis(TypeDeclaration td, TypeDeclaration outer, java.lang.String newName)
- Overrides:
changeExpressionsThis
in classExpression
-
visitTypeReferences
public void visitTypeReferences(CycleInfo info, TypeContext ctx)
Description copied from class:JavaSemanticNode
overridden by nodes to visit values in the reference chain- Overrides:
visitTypeReferences
in classJavaSemanticNode
-
refreshBoundTypes
public boolean refreshBoundTypes(int flags)
- Specified by:
refreshBoundTypes
in classStatement
-
addDependentTypes
public void addDependentTypes(java.util.Set<java.lang.Object> types, JavaSemanticNode.DepTypeCtx mode)
- Specified by:
addDependentTypes
in classStatement
-
setAccessTimeForRefs
public void setAccessTimeForRefs(long time)
- Specified by:
setAccessTimeForRefs
in classStatement
-
transformToJS
public Statement transformToJS()
- Specified by:
transformToJS
in classStatement
-
matchesStatement
public boolean matchesStatement(Statement other)
- Overrides:
matchesStatement
in classStatement
-
addBreakpointNodes
public void addBreakpointNodes(java.util.List<ISrcStatement> res, ISrcStatement srcStatement)
Description copied from interface:ISrcStatement
Adds all of the generated statements to the resulting list, for the case where more than one fromStatement points to the same src statement. These are used to determine which statements in the generated code should cause a 'break' when the developer sets a breakpoint on this statement.- Specified by:
addBreakpointNodes
in interfaceISrcStatement
- Overrides:
addBreakpointNodes
in classStatement
-
-