Class FeatureLiteral
java.lang.Object
gw.internal.gosu.parser.ParsedElement
gw.internal.gosu.parser.Expression
gw.internal.gosu.parser.expressions.FeatureLiteral
- All Implemented Interfaces:
IFeatureLiteralExpression,ILiteralExpression,IExpression,IHasType,IParsedElement,Cloneable
Represents a feature literal expression as defined in the Gosu grammar.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate IBlockTypeprivate List<IExpression>(package private) IFeatureInfoprivate IType[]private IExpressionprivate static final intFields inherited from class gw.internal.gosu.parser.Expression
_typeFields inherited from class gw.internal.gosu.parser.ParsedElement
_tokens, UNDEF_FILE, UNDEF_FUNCTION, UNDEF_MODULEFields inherited from interface gw.lang.parser.IExpression
EMPTY_ARRAY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate IType[]adjustParametersForFeature(IHasParameterInfos feature, IType[] params) argNames(IHasParameterInfos hasParams) private IType[]boundGenericFunctionTypeVariables(IHasParameterInfos methodInfo, IType[] parametersTypes) private <T extends IHasParameterInfos>
TensureExactMatch(T methodInfo, IType[] argTypes) private Stringprivate List<? extends IInvocableType>private ITypeList<? extends IInvocableType>getFunctionTypes(String name) getFunctionTypeVarsToBound(IHasParameterInfos methodInfo) private List<? extends IInvocableType>getMethodTypes(String name) IType[]private IType[]getParameterTypes(IHasParameterInfos hasParameterInfos) getRoot()private ITypeprivate IConstructorInfogetSingleConsructor(IType typeToResolveAgainst, ITypeInfo typeInfo) private IMethodInfogetSingleMethodWithName(String methodName, IType typeToResolveAgainst, ITypeInfo typeInfo) private booleanhasBoundArgs(IHasParameterInfos feature) private booleanbooleanisBound()booleanbooleanbooleanbooleanprivate IBlockTypemakeBlockType(IType returnType, IType[] params, List<String> argNames) booleanresolveConstructor(List<IType> typesList) private ITyperesolveConstructorLiteralType(IConstructorInfo constructorInfo) private voidbooleanresolveMethod(String methodName, List<IType> typesList) private ITyperesolveMethodLiteralType(IMethodInfo methodInfo) booleanresolveProperty(String propName) private ITyperesolvePropertyLiteralType(IPropertyInfo propertyInfo) voidsetFeature(IHasParameterInfos feature, List<IExpression> arguments) toString()Subclasses should return a String representing the parsed expression.Methods inherited from class gw.internal.gosu.parser.Expression
evaluate, evaluate, getContextType, getReturnType, getType, getTypeImpl, isNullSafe, isUnchecked, setTypeMethods inherited from class gw.internal.gosu.parser.ParsedElement
addExceptionsFrom, addParseException, addParseException, addParseException, addParseExceptions, addParseIssues, addParseWarning, addParseWarning, addParseWarnings, addToken, adjustColumn, adjustLineNum, assignTokens, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, compactParseTree, findAncestorParsedElementByType, findDeclaringStatement, findLineNumberOfDeclaration, findRootParsedElement, getAnnotations, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getEnclosingFeatureInfo, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getQualifyingEnclosingTypeInfo, getTokens, hasImmediateParseIssue, hasImmediateParseWarning, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, initEmptyParseTree, initLocation, isCompileTimeConstant, isSuppressed, isSuppressed, isSynthetic, makeDoubleValue, makeFloatValue, makeInteger, makeLong, removeParseException, removeParseWarning, removeParseWarningRecursively, setGosuProgram, setLineNum, setLocation, setParent, setSynthetic, shouldClearParseInfo, visitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface gw.lang.parser.IExpression
evaluate, evaluate, getContextType, isNullSafe, isUncheckedMethods inherited from interface gw.lang.parser.IParsedElement
addExceptionsFrom, addParseException, addParseException, addParseWarning, addParseWarning, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, findAncestorParsedElementByType, findDeclaringStatement, findRootParsedElement, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getReturnType, getTokens, hasImmediateParseIssue, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, isCompileTimeConstant, isSuppressed, isSynthetic, setLocation, setParent, visit
-
Field Details
-
MAX_BLOCK_ARGS
private static final int MAX_BLOCK_ARGS- See Also:
-
_root
-
_feature
IFeatureInfo _feature -
_parameterTypes
-
_boundArgs
-
_blockType
-
-
Constructor Details
-
FeatureLiteral
-
-
Method Details
-
resolveProperty
-
resolveMethod
-
resolveConstructor
-
setFeature
-
toString
Description copied from class:ExpressionSubclasses should return a String representing the parsed expression.- Specified by:
toStringin classExpression
-
isConstructorLiteral
public boolean isConstructorLiteral() -
isMethodLiteral
public boolean isMethodLiteral() -
isPropertyLiteral
public boolean isPropertyLiteral() -
getRoot
-
getFinalRoot
- Specified by:
getFinalRootin interfaceIFeatureLiteralExpression- Returns:
- the final root expression of the feature literal
-
getFinalRootType
- Specified by:
getFinalRootTypein interfaceIFeatureLiteralExpression- Returns:
- the root type of the entire literal chain (if one exists)
-
getRootType
- Specified by:
getRootTypein interfaceIFeatureLiteralExpression- Returns:
- the type that the feature that this literal refers to is on
-
getPropertyName
-
getMethodName
-
getBoundArgs
- Specified by:
getBoundArgsin interfaceIFeatureLiteralExpression- Returns:
- bound args of this feature, or null if there are no bound args
-
isBound
public boolean isBound()- Specified by:
isBoundin interfaceIFeatureLiteralExpression- Returns:
- true if this literal is bound at its root
-
getParameterTypes
-
isStaticish
public boolean isStaticish() -
getFeature
- Specified by:
getFeaturein interfaceIFeatureLiteralExpression- Returns:
- the feature associated with this literal
-
getFunctionTypes
-
getSingleMethodWithName
private IMethodInfo getSingleMethodWithName(String methodName, IType typeToResolveAgainst, ITypeInfo typeInfo) -
getSingleConsructor
-
ensureExactMatch
-
boundGenericFunctionTypeVariables
private IType[] boundGenericFunctionTypeVariables(IHasParameterInfos methodInfo, IType[] parametersTypes) -
getFunctionTypeVarsToBound
-
makeBlockType
-
getMethodTypes
-
getConstructorTypes
-
resolveExpressionType
private void resolveExpressionType() -
resolvePropertyLiteralType
-
resolveMethodLiteralType
-
resolveConstructorLiteralType
-
argNames
-
adjustParametersForFeature
-
hasBoundArgs
-
hasImplicitFirstArg
private boolean hasImplicitFirstArg() -
getParameterTypes
-
featureRepresentation
-
getRootTypeToResolveFeaturesAgainst
-
getFeatureReturnType
-