Package gw.internal.gosu.parser
Class GosuParser
java.lang.Object
gw.internal.gosu.parser.ParserBase
gw.internal.gosu.parser.GosuParser
- All Implemented Interfaces:
IGosuParser
,IParserPart
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
Nested classes/interfaces inherited from interface gw.lang.parser.IGosuParser
IGosuParser.ParseType, IGosuParser.Settings
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private Boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private boolean
private ContextInferenceManager
private Map<String,
List<IFunctionSymbol>> private int
private int
private int
private Stack<TypeVarToTypeMap>
private Stack<ContextType>
(package private) int
private int
private boolean
private ArrayList<VarStatement>
private ArrayList<FunctionType>
private boolean
private Program
private IScriptabilityModifier
private Stack<IScriptPartId>
private Stack<ParsedElement>
private Stack<DynamicFunctionSymbol>
private String
private ISymbolTable
private SourceCodeTokenizer
private ITokenizerInstructor
private ITypeUsesMap
private HashMap<String,
ITypeVariableDefinition> private static final String[]
Using some simple pattern matching, get a potential property name from a method name at the end of an access list.private static final String[]
static ErrorType
static final IType
Fields inherited from class gw.internal.gosu.parser.ParserBase
_bDontOptimizeStatementLists, _blocks, _offsetShift
Fields inherited from interface gw.lang.parser.IGosuParser
BIGD_ZERO, DOUBLE_DIGITS, NaN, ONE, ZERO
-
Constructor Summary
ConstructorsConstructorDescriptionGosuParser
(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint) GosuParser
(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint, ITypeUsesMap tuMap) -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
_areParametersEquivalent
(IDynamicFunctionSymbol dfs1, IDynamicFunctionSymbol dfs2, IType[] args, IType[] toArgs) private void
_doParseObjectInitializer
(IType objectType) private void
_parseAnonymousInnerClass
(IType declaringClass, IGosuClassInternal gsDeclaringClass, ICompilableTypeInternal enclosingType, int iNameOffset, NewExpression newExpr, int mark) (package private) void
(package private) void
private void
(package private) boolean
_parseIndirectMemberAccess
(boolean bParseTypeLiteralOnly) private void
(package private) void
(package private) void
_parseLiteral
(Token token) (package private) boolean
_parseNameOrMethodCall
(Token token) (package private) void
_parseNewExpressionOrAnnotation
(boolean bAnnotation, boolean bBacktracking) private boolean
_parseObjectInitializer
(IType objectType) (package private) boolean
_parsePrimaryExpression
(Token token) (package private) boolean
(package private) void
_parseStatements
(boolean isolatedScope) private void
_parseStringLiteral
(boolean bUnterminatedLiteral, Token t) (package private) boolean
_parseTypeLiteral
(Token token, boolean bIgnoreArrayBrackets, boolean bInterface) (package private) boolean
_parseTypeLiteralWithAggregateSyntax
(Token token, boolean bIgnoreArrayBrackets, boolean bInterface) (package private) boolean
_parseTypeVariableDefinition
(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass) (package private) void
private void
addAllNonstaticPrivateMethods
(String name, IGosuClassInternal superClass, List<IFunctionSymbol> functions) private void
addDefaultReturnStmt
(DynamicFunctionSymbol dfsDecl, StatementList stmtList) private void
addJavaPropertyMethods
(String strMemberName, IType rootType, List<IFunctionType> listFunctionTypes) (package private) void
addMisingArgsWithDefaultValues
(ParsedElement element, IInvocableType funcType, List<Expression> argExpressions, List<LightweightParserState> parserStates, boolean bShouldScoreMethods) (package private) void
addNameInDeclaration
(String strName, int iOffsetName, int iLineNumName, int iColumnName, boolean bHasName) private void
addToCompoundType
(List<IType> types) private void
addTypeVarsToList
(List<IType> typeVariableTypes, IGenericTypeVariable[] typeVariables) private boolean
allTypeLiterals
(List<IExpression> args) private boolean
appliesToElementType
(IGosuAnnotation anno, ElementType elemType) private boolean
areDFSsInSameNameSpace
(IDynamicSymbol newDfs, IDynamicSymbol existingDfs) private boolean
areMetaTypes
(IType lhsType, IType rhsType) private boolean
areParametersEquivalent
(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting, IType... extraParams) private boolean
private boolean
assignArgExprPosition
(List<? extends IInvocableType> listFunctionTypes, int iArgs, List<Integer> namedArgOrder, int iArgPos) (package private) static DynamicFunctionSymbol
assignPossibleDuplicateDfs
(DynamicFunctionSymbol dfsDecl, Iterable symbols) private void
assignRuntime
(ParsedElement elem, boolean bIsolatedScope, IFileContext context, IType superType, IScriptPartId partId) private boolean
(package private) void
backtrack
(int mark, int iLocationsCount) (package private) void
backtrack
(int mark, int iLocationsCount, Expression expr) private void
backtrackArgParsing
(int mark, int iLocationsCount, List<Expression> argExpressions) private Expression
backtrackBinderExpr
(int locationsCount, Expression primExpr) private IType
boundCtxType
(IType ctxType) private IType
boundCtxType
(IType ctxType, boolean bKeepTypeVars) private IFunctionType
boundFunctionType
(IFunctionType funcType) private void
private Expression
buildRhsOfCompoundOperator
(Expression lhs, String assignOp, Expression rhs) private boolean
canCoerceFromString
(Expression first, Expression second) private boolean
checkComparableAndCastable
(Expression lhs, Expression rhs) private void
checkForStaticMethod
(IType classBean, Expression[] eArgs, String strMethod, GosuParser parserState) (package private) void
checkInstruction
(boolean bProcessDirectives) private void
private void
protected void
private void
private void
convertNullLiterals
(IType contextType) private void
convertNumberLiteralsToContextType
(IType contextType) private void
private void
boolean
doParametersReifyToSameBytecodeType
(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting) (package private) boolean
doTypesReifyToTheSameBytecodeType
(IType toArg, IType arg) private Expression
private Expression
private Expression
private boolean
errorsSame
(List<IParseIssue> newErrors, List<IParseIssue> errors) evalTypes
(List<IExpression> arguments) extractContextTypes
(List<? extends IInvocableType> funcTypes) private List<MethodScore>
factorInParseErrors
(List<MethodScore> scoredMethods) private DynamicFunctionSymbol
findCorrespondingDeclDfs
(int iOffsetName, int iModifiers) private IFunctionType
findFunction
(List<IFunctionType> listFunctionTypes, boolean bNoArgsProvided) static IType
private MethodScore
findLeastParams
(List<MethodScore> scoredMethods) Param count is the tiebreaker when vararg methods are involved.private IType
findLeastUpperBoundWithCoercions
(ConditionalTernaryExpression cte, Expression first, Expression second) private DynamicFunctionSymbol
findProgramPropertyDfs
(String strFunctionName, ArrayList<ISymbol> args) private List<IAttributedFeatureInfo>
getAllStaticFeatures
(IGosuClass gsType, String name) private IType
getBlockReturnType
(IParsedElement blockBody, IType ctxType) private IConstructorInfo
getConstructor
(IType instanceClass) getConstructorType
(IType classBean, Expression[] eArgs, List<IConstructorType> listAllMatchingMethods, ParserBase parserState) Get the type of the method specified in the member path.private ContextType
private Expression
getDefaultValueOrPlaceHolderForParam
(int iParam, IInvocableType invType) protected List<IFunctionSymbol>
getDfsDeclsForFunction
(String strFunctionName) private IDynamicFunctionSymbol
getDFSForFunctionType
(String strFunction, MethodScore bestMethod) private IType
private Map<String,
TypeVariableDefinition> getFunctionType
(IType classBean, String functionName, Expression[] eArgs, List<IFunctionType> listAllMatchingMethods, GosuParser parser, boolean bMatchParamTypes) protected List<IFunctionType>
getFunctionTypesForName
(String strFunctionName) private GosuConstructorInfo
getGsConstructorInfo
(IConstructorInfo ci, IGosuClassInternal gsInstanceClass) private IConstructorInfo
getImplicitConstructor
(IType type) private ContextType
private IType
getInnerClass
(String strMemberName, IType memberType, IHasInnerClass typeLiteralType) private Statement
getLastStatement
(Statement statement) private String
getModifierString
(IConstructorType constructorType) private IType
getNumberTypeFromContextType
(IType ctxType) private IType
getNumericTypeFrom
(String strValue) (package private) DynamicPropertySymbol
getOrCreateDynamicPropertySymbol
(ParsedElement parsedElement, IGosuClassInternal gsClass, DynamicFunctionSymbol dfs, boolean bGetter) private IGosuClass
private IType
getParamTypeFromParamName
(IInvocableType invType, String strParam, int[] iPos) private IType[]
getParamTypes
(List<Expression> argExpressions) private ArrayList<IConstructorType>
getPreliminaryConstructorTypes
(IType declaringClass, NewExpression e) private List<IFunctionType>
getPreliminaryFunctionTypes
(String strMemberName, BeanMethodCallExpression e, IType rootType, IType[] typeParameters) private DynamicFunctionSymbol
private String
getPropertyNameFromMethodName
(String strMethod) private String
getPropertyNameFromMethodName
(String strPrefix, String strMethod) private String
protected String
The context associated with the parser's script.getState()
private int
Returns the parser's symbol table.final SourceCodeTokenizer
The TokenizerInstructor to use for this parser.getTypes
(List<? extends IExpression> list) Get the type uses map.private ITypeVariableDefinition
getTypeVarDef
(String strTypeName) private List<TypeVariableDefinitionImpl>
getTypeVarDefsFromDecl
(IGenericTypeVariable[] typeVars) private void
handleAbstractCtor
(int iTokenStart, String strMemberName, BeanMethodCallExpression e, IParserState state) private StatementList
private void
handleImplicitCoercionsInArgs
(ParsedElement element, IType[] argTypes, IType[] rawArgTypes, List<Expression> args) private boolean
hasContextSensitiveExpression
(List<Expression> argExpressions) private static boolean
private static boolean
hasMethod_Cached
(IType type, String method) private boolean
hasParseExceptions
(Expression expr) private boolean
hasSemicolon
(IParsedElement stmt) private boolean
hasTypeModifier
(String strValue) boolean
private boolean
private void
private IType
inferArgType
(IType contextType, TypeVarToTypeMap inferenceMap) private IInvocableType
inferConstructor
(ConstructorType ctorType, TypeVarToTypeMap inferenceMap) private IInvocableType
inferFunction
(IInvocableType funcType, List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap) private IInvocableType
inferFunctionType
(IInvocableType funcType, List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap) private void
inferFunctionTypeVariables
(IType rawContextType, IType boundContextType, Expression expression, TypeVarToTypeMap inferenceMap) private IType
inferReturnTypeForBlockArgument
(ContextType contextType, IType[] unbound) boolean
private boolean
isAnnotation
(IType type) private boolean
isAssignableFrom
(IType type1, IType type2) private boolean
isBinLiteral
(String num) private boolean
isBlockInvoke
(Expression rootExpression, String strMemberName, IType rootType) private boolean
isBlockSym
(ISymbol functionSymbol) boolean
private boolean
private boolean
private boolean
isConditional
(IExpression expression) private boolean
isConnectorStringValid
(boolean bPostfix, String connectorString, Expression unitExpr, IType unitBinderType) private boolean
isConstructingNonStaticInnerClassFromNonStaticContext
(IType innersEnclosingClass, IGosuClassInternal constructingFromClass) (package private) boolean
isDeclarationKeyword
(String strKeyword) private boolean
isDynamicMethod
(List<? extends IInvocableType> listFunctionTypes) boolean
private boolean
private boolean
private boolean
private boolean
isErrorType
(IType rootType) private boolean
boolean
private boolean
private boolean
isHexLiteral
(String num) boolean
private boolean
isInitializableType
(IType type) private boolean
private boolean
isIsolatedCase
(List<CaseClause> cases) private boolean
private boolean
isNonStaticInnerClassConstructableFromCurrentFunction
(IType innersEnclosingClass, IGosuClassInternal constructingFromClass) private boolean
isOpenParenOnNextLine
(int mark) private boolean
private boolean
isParenthesisTerminalExpression
(boolean bMatchOpeningParen) boolean
isParsed()
boolean
boolean
private boolean
private boolean
boolean
boolean
(package private) boolean
private boolean
boolean
private boolean
private boolean
isPrefixNumericLiteral
(String strValue) private boolean
private boolean
private boolean
isSuperCall
(Expression rootExpression, Expression indexExpression) private boolean
isSymbolInScopeDirectly
(ISymbol idSym) private boolean
isTerminal
(Statement statement, IType returnType) private boolean
isThisPointer
(Expression expr) boolean
private boolean
isTypeParameterErrorMsg
(Expression expr, List<IParseIssue> exceptions) private boolean
isTypeParamHeaderCompiling
(IType typeParam) private boolean
isUnexpectedToken
(Statement statement) private boolean
isValidAnnotationMethodReturnType
(IType returnType) private MethodScore
makeDynamicMethodScore
(List<? extends IInvocableType> listFunctionTypes, List<Expression> argExpressions) private DynamicPropertySymbol
makeGetter
(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, boolean bOldSyntax) (package private) DynamicPropertySymbol
makeProperties
(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, boolean bGetter, boolean bSetter) private DynamicPropertySymbol
makeSetter
(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, DynamicPropertySymbol dps, boolean bOldSyntax) private void
makeTypeParameterListClause
(int iOffset, int iLineNum, int iColumn, List<TypeLiteral> paramTypes) private TypeVarToTypeMap
private String
private boolean
(package private) boolean
matchPrimitiveType
(boolean bSuperThis) private boolean
private String
private List<IFunctionSymbol>
maybeAddPrivateFunctionsIfSuperInSamePackage
(String name, List<IFunctionSymbol> functions) (package private) boolean
private List<? extends IInvocableType>
maybeAvoidNestedMethodScoring
(List<? extends IInvocableType> listFunctionTypes) private IInvocableType
maybeBoundFunctionTypeVars
(IInvocableType inferredFunctionType, TypeVarToTypeMap inferenceMap) private ISymbol
maybeCaptureSymbol
(MethodCallExpression e, ISymbol functionSymbol) private IType
maybeChangeToInferredType
(IType declaringClass, TypeLiteral typeLiteral, MethodScore bestConst) (package private) boolean
maybeEatNonDeclKeyword
(boolean bHasName, String strFunctionName) private IPropertyInfo
maybeGetProxiedPropertyInfo
(String propName, IPropertyInfo pi) private void
maybeInferFunctionTypeVarsFromReturnType
(IInvocableType invType, TypeVarToTypeMap inferenceMap) private TypeLiteral
private void
maybeOpenParenIsForParenthesizedExpr
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark, int iLocationsCount) private IFunctionType
maybeParameterizeOnCtxType
(IFunctionType funcType) private void
maybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr
(String[] t, int iOffset, int iLineNum, int iColumn, IParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol, int mark, int iLocationsCount) private void
maybeParseImpliedStaticMethod
(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs) private boolean
maybeParseImpliedThisMethod
(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs) private void
maybeReassignOffsetForArgumentListClause
(int iArgs, List<Expression> argExpressions, int iOffset, int iLineNum, int iColumn) private void
private List<? extends IInvocableType>
maybeRemoveNonGenericMethods
(List<? extends IInvocableType> listFunctionTypes, IType[] typeParams) private boolean
maybeReparseWithoutContextType
(int mark, int iLocationsCount, Expression initializerExpression) private boolean
maybeReplaceErrantPackageExprWithEnumConstEpr
(int iOffset, int iLineNum, int iColumn, Expression expr) private void
maybeReplacePackageExprWithTypeLiteral
(int iOffset, int iLineNum, int iColumn, Expression expr) private IType
private void
private String
maybeStripTypeModifier
(String strValue, IType numericTypeFrom) private void
maybeVerifyDoubleLiteral
(IExpression oneSide, IExpression otherSide) private void
protected void
int
nextIndexOfErrantDuplicateDynamicSymbol
(IDynamicSymbol ds, Collection<? extends ISymbol> symbols, boolean bCheckContains) private ArrayList<IFunctionType>
parameterizeFunctionTypes
(Expression expression, IType[] typeParameters, List<IFunctionType> listFunctionTypes) (package private) void
private void
parseAggregateTypeLiteral
(boolean bInterface) private IType
parseAnonymousInnerClass
(IType declaringClass, TypeLiteral typeLiteral, NewExpression newExpr, int state, int mark) private int
parseArgExpression
(IInvocableType funcType, int iArgs, List<Expression> argExpressions, TypeVarToTypeMap inferenceMap, List<LightweightParserState> parserStates, Set<String> namedArgs, boolean bMethodScoring) private MethodScore
parseArgumentList
(IType rootType, ParsedElement element, List<? extends IInvocableType> listFunctionTypes, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) private boolean
(package private) List<Expression>
parseArrayValueList
(IType componentType) private void
private void
parseAssignment
(Expression e, String assignOp) (package private) boolean
private Expression
parseAssignmentRhs
(String operation, IType typeExpected, Expression lhs) (package private) FunctionStatement
parseBaseFunctionDefinition
(FunctionStatement functionStmt, boolean bProperty, boolean bGetter, ModifierInfo modifiers) (package private) void
(package private) void
parseBindableExpression
(boolean bPostfix) private void
parseBindableExpression
(Token token) private void
parseBindableExpression
(Token token, boolean bPostfix) private void
parseBindingExpression
(Token token) private void
parseBindingExpression
(Token token, boolean bPostfix) (package private) void
(package private) void
(package private) void
(package private) void
private void
(package private) void
private boolean
parseBooleanLiteral
(Token token) (package private) boolean
parseCaseClause
(SwitchStatement switchStmt, List<CaseClause> cases) (package private) void
parseCaseClauses
(SwitchStatement switchStmt) private boolean
parseCharLiteral
(Token token) parseClass
(String strQualifiedClassName, ISourceFileHandle sourceFile, boolean bThrowOnWarnings, boolean bFullyCompile) For use by code editors etc.private void
private void
parseCompoundTypeLiteralExpression
(String[] T, boolean bInterface, int iOffset, int iLineNum, int iColumn) (package private) void
(package private) void
(package private) void
(package private) boolean
parseDefaultClause
(SwitchStatement switchStmt, List<CaseClause> cases) (package private) void
parseDelegateStatement
(DelegateStatement delegateStmt, String strIdentifier) private void
parseDirective
(boolean processDirectives) private NumericLiteral
parseDouble
(String strValue) private NumericLiteral
parseDoubleOrBigDec
(String strValue) private void
private void
parseDynamicFunction
(Symbol dynamcSymbol) private void
private void
private void
parseExp
(IScriptPartId partId) Parses a Gosu expression.private Expression
parseExp
(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, boolean assignRuntime) private Expression
parseExp
(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, IFileContext context, boolean assignRuntime) parseExp
(IScriptPartId partId, IType expectedExpressionType) Parses a Gosu expression.parseExp
(IScriptPartId partId, IType expectedExpressionType, IFileContext context, boolean assignRuntime) Parses a Gosu expression.private void
parseExplicitlyTypedNumericLiteral
(String strValue, IType numericTypeFrom) parseExpOrProgram
(IScriptPartId partId) Parses a Gosu expression.parseExpOrProgram
(IScriptPartId partId, boolean isolatedScope, boolean assignRuntime) Parses a Gosu expression.parseExpOrProgram
(IScriptPartId partId, IType typeExpected, boolean isolatedScope, boolean assignRuntime) (package private) void
(package private) void
parseExpression
(ContextType contextType) (package private) void
parseExpression
(ContextType ctxType, boolean bVerify) (package private) void
parseExpressionNoVerify
(ContextType ctxType) private boolean
parseFeatureLiteral
(Token token, Expression root) private NumericLiteral
parseFloat
(String strValue) private void
private boolean
parseFunctionBody
(FunctionStatement functionStmt, FunctionType type) (package private) DynamicFunctionSymbol
parseFunctionDecl
(ParsedElement element, boolean bProperty, boolean bGetter, ModifierInfo modifiers) (package private) DynamicFunctionSymbol
parseFunctionDecl
(ParsedElement element, ModifierInfo modifiers) (package private) DynamicFunctionSymbol
parseFunctionDecl
(ParsedElement element, String T, boolean bProperty, boolean bGetter, ModifierInfo modifiers) (package private) boolean
(package private) ISymbol
private IType[]
private void
parseIdentifier
(Identifier e, String[] T) private void
parseIdentifier
(String[] T) private void
parseIdentifierOrTypeLiteralOrEnumConstant
(String[] T, int iOffset, int iLineNum, int iColumn) private void
private void
parseIndexVar
(ForEachStatement forEachStmt) private void
parseIndirectMemberAccess
(int iOffset, int iLineNum, int iColumn) private void
parseIndirectMemberAccess
(int iOffset, int iLineNum, int iColumn, boolean bParsingTypeLiteralOnly) private boolean
parseInitializerAssignment
(IType objectType) private void
parseInitializerIdentifier
(IType objectType) (package private) void
private NumericLiteral
parseIntOrLongOrBigInt
(String strValue) private void
parseIteratorVar
(ForEachStatement forEachStmt, IType type) (package private) void
parseLiteral
(Token token) private List<IGosuAnnotation>
parseLocalAnnotations
(List<IGosuAnnotation> annotations) (package private) void
parseLocalVarStatement
(VarStatement varStmt) (package private) boolean
private void
private void
parseMemberAccess
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly) private void
parseMemberAccess
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty) private void
parseMethodCall
(String[] t, int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol, int markBeforeTypeArgs, int iLocBeforeTypeArgs, int markAfterTypeArgs) private void
parseMethodCall
(String[] t, IParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol) private void
parseMethodMember
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark) private void
parseMethodMember
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart) (package private) void
private int
parseNamedParamExpression
(IInvocableType invType, boolean bMethodScoring) private void
(package private) boolean
parseNameOrMethodCall
(Token token) private void
parseNamespaceStartOrRelativeType
(String[] T, boolean bInterface) (package private) void
(package private) void
(package private) void
(package private) void
new-expression new <type-expression> ( [<argument-list>] ) { [<initialization-expression>] } new <type-expression> [ <expression> ] new <type-expression> [] { [<array-value-list>] }(package private) void
parseNewExpressionOrAnnotation
(boolean bAnnotation) (package private) void
parseNewExpressionOrAnnotation
(IType declaringClass, boolean bAnnotation, boolean bNoArgNoParenthesis, TypeLiteral typeLiteral, int mark) private boolean
parseNullLiteral
(Token token) private boolean
parseNumberLiteral
(Token token) private boolean
parseNumberLiteral
(Token token, boolean negated) private void
parseNumericValue
(String strValue) private boolean
parseObjectInitializer
(IType objectType) parseParameterDeclarationList
(IParsedElement element, boolean bStatic, List<IType> inferredArgumentTypes) parseParameterDeclarationList
(IParsedElement element, boolean bStatic, List<IType> inferredArgumentTypes, boolean bProperty, boolean bGetter, boolean bEmpty, boolean bVarDynamicArg) (package private) boolean
parseParameterType
(IType boundingType) private void
parsePlainFunction
(IFunctionSymbol functionSymbol) private IType[]
private void
parsePostfixNumericLiteral
(String num, IType numericTypeFrom, int radix) private boolean
parsePostfixUnitBindingExpression
(Token priorToken, String connectorString) private void
parsePrefixNumericLiteral
(String strValue, IType numericTypeFrom) private boolean
parsePrefixUnitBindingExpression
(Token priorToken, String connectorString) (package private) void
parseProgram
(IScriptPartId partId) parseProgram
(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) parseProgram
(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException) parseProgram
(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException, IType superType) parseProgram
(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType) parseProgram
(IScriptPartId partId, IType expectedExpressionType) parseProgram
(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) parseProgram
(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException) (package private) List<IClasspathStatement>
(package private) FunctionStatement
private void
private boolean
(package private) List<ITypeLoaderStatement>
(package private) boolean
private void
parsePropertyMember
(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, IType rootType, boolean bExpansion) (package private) void
private boolean
parseRelativeFeatureLiteral
(Token token) private void
private boolean
private boolean
parseStandAloneDataStructureInitialization
(Token token, boolean bAvoidContextType, boolean bBacktracking) (package private) boolean
(package private) boolean
parseStatement
(boolean bAsStmtBlock) (package private) boolean
parseStatement
(boolean forceKeepStmtBlock, boolean bAsStmtBlock) private void
private void
parseStatementBlock
(boolean bMatchClosingBrace) private void
parseStatementBlock
(boolean forceKeepStmtBlock, boolean bMatchClosingBrace) parseStatements
(IScriptPartId partId) Parses a set of Gosu statements.private Statement
parseStatements
(IScriptPartId partId, boolean verify, boolean isolatedScope) (package private) void
parseStatementsAndDetectUnreachable
(List<Statement> statements) private boolean
parseStringLiteral
(Token token) private boolean
private void
private TemplateStringLiteral
private void
private void
(package private) void
boolean
Consumes a type literal from the current tokenizer, if one exists.(package private) boolean
parseTypeLiteral
(boolean bInterface) boolean
parseTypeLiteral
(Token token) (package private) boolean
parseTypeLiteral
(Token token, boolean bInterface) parseTypeLiteral
(IScriptPartId partId) Parses a type literal expression.(package private) void
parseTypeLiteral
(String[] T, boolean bIgnoreArrayBrackets, boolean bInterface, int iOffset, int iLineNum, int iColumn) (package private) void
(package private) List<TypeLiteral>
parseTypeParameters
(IType enclosingType) (package private) void
parseTypeVariableDefinition
(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass) (package private) List<ITypeVariableDefinitionExpression>
parseTypeVariableDefList
(ParsedElement parsedElem, boolean bForFunction, List<TypeVariableDefinitionImpl> typeVarDefListFromDecl) (package private) List<ITypeVariableDefinitionExpression>
parseTypeVariableDefs
(ParsedElement parsedElem, boolean bFunction, List<TypeVariableDefinitionImpl> typeVarDefListFromDecl) (package private) void
(package private) void
private boolean
private boolean
parseUnitExpressionFactor
(Token token) private MemberAccess
parseUnqualifiedEnumConstant
(String strConstValue) (package private) void
(package private) void
parseUsesStatement
(boolean bResolveTypes) parseUsesStatementList
(boolean bResolveUsesTypes) private void
private void
parseVariance
(ParsedElement parsedElem, TypeVariableDefinition typeVarDef) (package private) DynamicPropertySymbol
parseVarPropertyClause
(VarStatement varStmt, ModifierInfo modifiers, String strVarIdentifier, IType varType, boolean parseInitializer) (package private) void
parseVarStatement
(VarStatement varStmt, Token idToken, boolean bClassMember) private void
parseVarStatementsInUsingStatement
(UsingStatement usingStmt) private void
private boolean
protected DynamicFunctionSymbol
protected Expression
protected ParsedElement
(package private) Program
protected Statement
protected DynamicFunctionSymbol
void
(package private) void
popInferenceMap
(TypeVarToTypeMap inferenceMap) void
void
(package private) VarStatement
(package private) FunctionType
void
(package private) void
popScriptPart
(IScriptPartId partId) protected Statement
private Statement
popStatementAndDetectUnreachable
(Statement previousStatement, List<Statement> statements) private ISymbol
possiblyResolveFunctionSymbol
(MethodCallExpression e, String strFunction) private void
processUsesStatement
(UsesStatement usesStmt, TypeLiteral typeLiteral, IFeatureInfo fi, IGosuClass gsType) private void
processUsesStatementFeatureLiteral
(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral, FeatureLiteral fl) private void
processUsesStatementTypeLiteral
(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral) private boolean
propertyTypeDiffers
(DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting) protected void
private void
pushErrorNumberLiteral
(ResourceKey key, Object... args) protected void
void
void
pushInferenceMap
(TypeVarToTypeMap inferenceMap) void
pushInferredContextTypes
(ContextType ctxType) void
pushParsingAbstractConstructor
(Boolean bParsingAbstractConstructor) (package private) void
pushParsingFieldInitializer
(VarStatement VarStatement) (package private) void
pushParsingFunction
(FunctionType functionType) void
pushParsingStaticMember
(Boolean bParsingStaticFeature) void
pushScriptPart
(IScriptPartId partId) protected void
pushStatement
(Statement stmt) protected void
pushTypeVariableTypesToInfer
(IInvocableType functionType) void
void
putDfsDeclsInTable
(ISymbolTable table) private void
putThisAndSuperSymbols
(ModifierInfo modifiers) private boolean
private void
private void
removeLocation
(ParseTree location) (package private) void
removeLocationsFrom
(int iLocationsCount) private MethodScore
reparseArguments
(MethodScore bestScore, List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) private boolean
reparseErrorsAreDifferent
(TypeVarToTypeMap inferenceMap, List<Expression> argExpressions) private MethodScore
reparseWithCorrectFunctionAndGtfo
(MethodScore bestScore, boolean bShouldScoreMethods, List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) private void
reset()
void
private boolean
resolveArrayOrParameterizationPartOfTypeLiteral
(String[] T, boolean bIgnoreArrayBrackets, TypeLiteral e) private IType
resolveTypeByRelativeName
(String strTypeName) resolveTypeLiteral
(String strTypeName) Resolves the type literal given by strTypeName.protected TypeLiteral
resolveTypeLiteral
(String[] T) protected TypeLiteral
resolveTypeLiteral
(String[] T, boolean bRelative, boolean bInterface) resolveTypeLiteral
(String strTypeName, boolean bRelative, boolean bInterface) private IType
resolveTypeName
(String strTypeName, boolean bRelative) private boolean
returnTypesCompatible
(DynamicFunctionSymbol dfsExisting, DynamicFunctionSymbol dfs) private MethodScore
scoreMethod
(IType callsiteEnclosingType, IType rootType, IInvocableType funcType, List<? extends IInvocableType> listFunctionTypes, List<Expression> argExpressions, boolean bSimple, boolean bLookInCache) private void
scrubAnnotationConstructors
(IType declaringClass, List<IConstructorType> listConstructorTypes) void
setAllowWildcards
(boolean allowWildcards) void
setCaptureSymbolsForEval
(boolean bCaputreSymbolsForEval) void
setContextInferenceManager
(ContextInferenceManager ctxInferenceMgr) void
setDfsDeclInSetByName
(Map<String, List<IFunctionSymbol>> dfsDecl) void
setEditorParser
(boolean bStudioEditorParser) (package private) static void
setFromTargetModifier
(IGosuAnnotation anno, ModifierInfo modifierInfo) void
setGenerateRootExpressionAccessForProgram
(boolean bGenRootExprAccess) void
setLocationsFromProgramClassParser
(List<ParseTree> savedLocations) (package private) void
setNamespace
(String strNamespace) private void
setOperatorLineNumber
(Expression expression, int operatorLineNumber) protected void
setParsed
(boolean bParsed) void
setParsingAnnotation
(boolean parsingAnnotation) private void
setParsingTypeLiteralForNewExpression
(boolean value) private void
setReturnNullExpr
(ReturnStatement returnStmt, boolean bProgramCallFunction) void
Set the script or expression to parse and execute.void
setScript
(SourceCodeReader reader) Set the script or expression to parse and execute.void
setScript
(CharSequence source) Set the script or expression to parse and execute.void
setSymbolTable
(ISymbolTable symTable) Sets the parser's symbol table.void
setThrowParseExceptionForWarnings
(boolean bThrowParseExceptionForWarnings) void
setTokenizer
(ISourceCodeTokenizer tokenizer) void
setTokenizerInstructor
(ITokenizerInstructor tokenizerInstructor) void
setTypeUsesMap
(ITypeUsesMap typeUsesMap) Set the type uses map.protected void
void
setValidator
(IGosuValidator validator) void
setWarnOnCaseIssue
(boolean warnOnCaseIssue) private boolean
shouldParseMemberInstead
(String strMemberName, IType rootType, IType memberType) private boolean
private boolean
staticRefToNonStaticFunc
(String stFunction, Expression[] eArgs) private boolean
private String
stripPrefix
(String strValue) private boolean
supportPropertyAccessAsGetterCall
(String[] t, String strFunction, IFunctionSymbol function) private boolean
supportsInitializer
(IType type) private boolean
symbolIn
(IDynamicSymbol ds, Collection<? extends ISymbol> symbols) toString()
private void
transferModifierInfo
(ParsedElement stmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, EnhancementDynamicFunctionSymbol dfs) private void
transferModifierInfo
(VarStatement varStmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, DynamicFunctionSymbol dfs) private boolean
tryPostfixUnitExpr
(int mark, int locationsCount, Expression lhsExpr, Token priorToken, String connectorString, boolean testConnector) private void
tryToMakeTypeLiteral
(String[] T, int iOffset, int iLineNum, int iColumn, String name, Expression errantExpression) boolean
typeVarExists
(Map<String, ITypeVariableDefinition> typeVarMap, TypeVariableDefinition typeVarDef) private IType
unitExprType
(Expression unitExpr) private IType
useDynamicTypeIfDynamicRoot
(IInvocableType funcType, IType ctxType) private void
verifyArgCount
(ParsedElement element, int iArgs, IConstructorType ctorType) private void
verifyArgCount
(ParsedElement element, int iArgs, IFunctionType funcType) private void
verifyArgTypes
(IType[] argTypes, List<Expression> argExpressions, List<LightweightParserState> parserStates) private void
verifyCanConstructInnerClassFromCallSite
(NewExpression e, IType innerClass) private boolean
verifyCanParameterizeType
(ParsedElement elem, IType type, IType[] typeParam) private void
verifyCase
(ParsedElement element, String foundName, String actualName, IParserState state, ResourceKey errorKey, boolean isEndsWithMatchOK) private void
verifyCase
(ParsedElement element, String foundName, String actualName, ResourceKey errorKey, boolean isEndsWithMatchOK) private void
verifyCaseIsUnique
(Expression e, List<CaseClause> cases) private void
verifyCoercionSymmetry
(EqualityExpression e, Expression lhs, Expression rhs) private Expression
verifyConditionalTypes
(Expression lhs, Expression rhs) private void
verifyConstructorIsAccessible
(IType instanceClass, NewExpression e, IConstructorType constructorType, boolean bAnonymous) private void
verifyFunction
(DynamicFunctionSymbol dfs, ParsedElement element) (package private) void
verifyFunctionConflictsWithPropoertySetter
(ParsedElement element, DynamicFunctionSymbol dfs, DynamicPropertySymbol dps) private void
private void
private void
private void
private void
verifyNotWeakerAccess
(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting) private void
(package private) void
verifyPropertySetterConflictsWithFunction
(ParsedElement element, DynamicFunctionSymbol dfs, String propName, DynamicFunctionSymbol existingDfs) private void
verifyPropertyWritable
(IType classRoot, String strProperty, boolean bFromObjInitializer) private void
verifyReified
(boolean bValidOverrideFound, ParsedElement element, DynamicFunctionSymbol dfs) private void
private void
private void
private void
private void
private void
verifySameNumberOfFunctionTypeVars
(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting) private void
verifySuperAccess
(Expression rootExpression, Expression memberExpr, IAttributedFeatureInfo feature, String strMemberName) private IType
verifySuperTypeIsDeclaredInCompilingClass
(TypeLiteral superTypeLiteral) private void
verifyTypeAccessible
(TypeLiteral expr, IType type) private void
private Expression
verifyWithComparableDimension
(Expression rhs, IType lhsType) private void
warnIfCaseNotTerminated
(List<Statement> statements) private void
private Expression
wrapExpressionIfNeeded
(Expression first, Expression second) private ReturnStatement
Methods inherited from class gw.internal.gosu.parser.ParserBase
addBlockToBlockStack, addError, addError, advanceToNextTokenSilently, captureAllSymbols, captureSymbol, copyBlockStackTo, eatBlock, eatBlock, eatOptionalSemiColon, eatParenthesized, eatPossibleArrayBrackets, eatPossibleArrayBrackets, eatPossibleEnclosedVarInStmt, eatPossibleParametarization, eatPossibleParametarization, eatPossibleStatementBlock, eatStatementBlock, eatTypeLiteral, findAndWrapLocation, findMathOpMethod, getClassStatement, getCurrentEnclosingGosuClass, getCurrentlyInferringFunctionTypeVars, getGosuClass, getLineNumShift, getOffsetShift, getOwner, getParsingAnonymousClass, getUncapturedSymbol, getValidator, isDontOptimizeStatementLists, isEvalClass, isFinalDimension, isOrIsEnclosedByAnonymousClass, isParsingBlock, isTypeVarInReifiedContext, isWordOrValueKeyword, makeFullParserState, makeFullParserStateWithSymbols, makeLazyLightweightParserState, makeLightweightParserState, match, match, match, match, match, match, matchDeclarationKeyword, parseAnnotation, parseDotPathWord, parseModifiers, parseModifiers, peekInferringFunctionTypeVariableTypes, popCurrentBlock, popInferringFunctionTypeVariableTypes, possiblyWrapWithCoercion, possiblyWrapWithImplicitCoercion, pushCurrentBlock, pushInferringFunctionTypeVars, pushModifierList, resolveNamespace, resolveNamespaceSymbol, resolveRuntimeType, resolveSymbol, resolveType, resolveType, resolveTypeForArithmeticExpression, setBlocks, setDontOptimizeStatementLists, setIgnoreWarnings, setLineNumShift, setLocation, setLocation, setLocation, setLocationForImplicitTypeAs, setOffsetShift, setOwner, setSnapshotSymbols, setSubTree, shouldSnapshotSymbols, verify, verify, verify, verify, verify, verify, verifyAnnotations, verifyComparable, verifyComparable, verifyComparable, verifyModifiers, verifyModifiersForFeature, verifyNoAbstractHideOverrideModifierDefined, verifyNoAbstractHideOverrideStaticModifierDefined, verifyNoAbstractHideOverrideStaticModifierDefined, verifyNoAbstractHideStaticModifierDefined, verifyNoAccessibilityModifierDefined, verifyNoCombinedFinalPrivateModifierDefined, verifyNoCombinedFinalStaticModifierDefined, verifyNoCombinedPrivateAbstract, verifyNoHideOverrideModifierDefined, verifyNoHideOverrideStaticModifierDefined, verifyNonVoidExpression, verifyOrWarn, verifyParsedElement, verifyParsedElement, verifyTypesComparable, verifyTypesComparable, verifyTypeVarAreReified, warn, warn
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface gw.lang.parser.IGosuParser
isParsingBlock, setIgnoreWarnings, setSnapshotSymbols
Methods inherited from interface gw.lang.parser.IParserPart
getLineNumShift, getOffsetShift, getOwner, isDontOptimizeStatementLists, setDontOptimizeStatementLists, setLineNumShift
-
Field Details
-
PENDING_BOUNDING_TYPE
-
notfound
-
_tokenizer
-
_symTable
-
_bParsed
private boolean _bParsed -
_stack
-
_stackDFS
-
_locations
-
_parsingProgram
-
_parsingFunctions
-
_parsingNewExpressionTypeLiteral
private boolean _parsingNewExpressionTypeLiteral -
_parsingFieldInitializer
-
_dfsDeclByName
-
_typeUsesMap
-
_strNamespace
-
_tokenizerInstructor
-
_scriptabilityConstraint
-
_iBreakOk
private int _iBreakOk -
_iContinueOk
private int _iContinueOk -
_iReturnOk
int _iReturnOk -
_scriptPartIdStack
-
_inferenceMapStack
-
_typeVarsByName
-
_inferredContextStack
-
_bThrowForWarnings
private boolean _bThrowForWarnings -
_bStudioEditorParser
private boolean _bStudioEditorParser -
_bWarnOnCaseIssue
private boolean _bWarnOnCaseIssue -
_parsingAbstractConstructor
-
_ctxInferenceMgr
-
_blockReturnTypeStack
-
_parsingStaticFeature
-
_bCaptureSymbolsForEval
private boolean _bCaptureSymbolsForEval -
_parsingAnnotation
private boolean _parsingAnnotation -
_allowWildcards
private boolean _allowWildcards -
_ignoreTypeDeprecation
private int _ignoreTypeDeprecation -
_bGenRootExprAccess
private boolean _bGenRootExprAccess -
_bProgramCallFunction
private boolean _bProgramCallFunction -
_typeCache
-
_iStmtDepth
private int _iStmtDepth -
_savedLocations
-
_bAreUsingStatementsAllowedInStatementLists
-
BINDER_ASSIGNABILITY_CACHE
-
METHOD_PREFIX_LIST
Using some simple pattern matching, get a potential property name from a method name at the end of an access list. Patterns:
get
>mixed-case-name<is
>mixed-case-name< -
METHOD_PREFIX_LIST_WITH_SETTER
-
-
Constructor Details
-
GosuParser
GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint) -
GosuParser
GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint, ITypeUsesMap tuMap)
-
-
Method Details
-
setValidator
- Specified by:
setValidator
in interfaceIParserPart
- Overrides:
setValidator
in classParserBase
-
getScriptPart
Description copied from interface:IGosuParser
The context associated with the parser's script. E.g., a file name, a library, a rule, etc.- Specified by:
getScriptPart
in interfaceIGosuParser
-
getScriptPartIdStack
-
pushScriptPart
-
popScriptPart
-
getInferenceMap
-
pushInferenceMap
-
popInferenceMap
-
setScript
Description copied from interface:IGosuParser
Set the script or expression to parse and execute.- Specified by:
setScript
in interfaceIGosuParser
- Parameters:
source
- The rule (Gosu) source to parse/execute.
-
setScript
Description copied from interface:IGosuParser
Set the script or expression to parse and execute.- Specified by:
setScript
in interfaceIGosuParser
- Parameters:
src
- A reader for the rule (Gosu) source to parse/execute.
-
setScript
Description copied from interface:IGosuParser
Set the script or expression to parse and execute.- Specified by:
setScript
in interfaceIGosuParser
- Parameters:
reader
- A reader for the rule (Gosu) source to parse/execute.
-
resetScript
public void resetScript() -
reset
private void reset() -
getScript
- Specified by:
getScript
in classParserBase
-
getSymbolTable
Description copied from interface:IGosuParser
Returns the parser's symbol table.- Specified by:
getSymbolTable
in interfaceIGosuParser
- Overrides:
getSymbolTable
in classParserBase
-
setSymbolTable
Description copied from interface:IGosuParser
Sets the parser's symbol table.- Specified by:
setSymbolTable
in interfaceIGosuParser
- Parameters:
symTable
- The symbol table the parser will use when parsing and executing rules.
-
getTypeUsesMap
Description copied from interface:IGosuParser
Get the type uses map.- Specified by:
getTypeUsesMap
in interfaceIGosuParser
-
setTypeUsesMap
Description copied from interface:IGosuParser
Set the type uses map.- Specified by:
setTypeUsesMap
in interfaceIGosuParser
-
getNamespace
-
setNamespace
-
getVisibilityConstraint
-
getTokenizerInstructor
Description copied from interface:IGosuParser
The TokenizerInstructor to use for this parser. Optional.- Specified by:
getTokenizerInstructor
in interfaceIGosuParser
-
setTokenizerInstructor
- Specified by:
setTokenizerInstructor
in interfaceIGosuParser
-
peekParsingFunction
-
iterateParsingFunctions
-
popParsingFunction
FunctionType popParsingFunction() -
pushParsingFunction
-
isParsingFunction
public boolean isParsingFunction()- Specified by:
isParsingFunction
in interfaceIGosuParser
-
isParsingTypeListeralForNewExpression
private boolean isParsingTypeListeralForNewExpression() -
setParsingTypeLiteralForNewExpression
private void setParsingTypeLiteralForNewExpression(boolean value) -
peekParsingFieldInitializer
-
popParsingFieldInitializer
VarStatement popParsingFieldInitializer() -
pushParsingFieldInitializer
-
isParsingFieldInitializer
public boolean isParsingFieldInitializer() -
peekParsingProgram
Program peekParsingProgram() -
isParsingProgram
boolean isParsingProgram() -
parseStatements
Description copied from interface:IGosuParser
Parses a set of Gosu statements. To execute all of the Statements at once call Statement.execute().- Specified by:
parseStatements
in interfaceIGosuParser
- Returns:
- The parsed Statement[s].
- Throws:
ParseResultsException
- if any of the statements do not parse according to the Gosu grammar.
-
parseStatements
private Statement parseStatements(IScriptPartId partId, boolean verify, boolean isolatedScope) throws ParseResultsException - Throws:
ParseResultsException
-
_parseStatements
void _parseStatements(boolean isolatedScope) -
parseStatementsAndDetectUnreachable
-
popStatementAndDetectUnreachable
-
isUnexpectedToken
-
parseProgram
- Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException, IType superType) throws ParseResultsException - Specified by:
parseProgram
in interfaceIGosuParser
- Throws:
ParseResultsException
-
setGenerateRootExpressionAccessForProgram
public void setGenerateRootExpressionAccessForProgram(boolean bGenRootExprAccess) - Specified by:
setGenerateRootExpressionAccessForProgram
in interfaceIGosuParser
-
isGenerateRootExpressionAccessForProgram
public boolean isGenerateRootExpressionAccessForProgram() -
assignRuntime
private void assignRuntime(ParsedElement elem, boolean bIsolatedScope, IFileContext context, IType superType, IScriptPartId partId) throws ParseResultsException - Throws:
ParseResultsException
-
isForStringLiteralTemplate
private boolean isForStringLiteralTemplate() -
parseProgramClasspathStatements
List<IClasspathStatement> parseProgramClasspathStatements() -
parseProgramTypeLoaderStatements
List<ITypeLoaderStatement> parseProgramTypeLoaderStatements() -
parseExp
Description copied from interface:IGosuParser
Parses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExp
in interfaceIGosuParser
- Returns:
- The parsed Expression.
- Throws:
ParseResultsException
- if the expression does not parse according to the Gosu grammar.
-
parseExp
public Expression parseExp(IScriptPartId partId, IType expectedExpressionType) throws ParseResultsException Description copied from interface:IGosuParser
Parses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExp
in interfaceIGosuParser
- Returns:
- The parsed Expression.
- Throws:
ParseResultsException
- if the expression does not parse according to the Gosu grammar.
-
parseExp
public Expression parseExp(IScriptPartId partId, IType expectedExpressionType, IFileContext context, boolean assignRuntime) throws ParseResultsException Description copied from interface:IGosuParser
Parses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExp
in interfaceIGosuParser
- Returns:
- The parsed Expression.
- Throws:
ParseResultsException
- if the expression does not parse according to the Gosu grammar.
-
parseExp
private Expression parseExp(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, boolean assignRuntime) throws ParseResultsException - Throws:
ParseResultsException
-
parseExp
private Expression parseExp(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, IFileContext context, boolean assignRuntime) throws ParseResultsException - Throws:
ParseResultsException
-
parseExpOrProgram
Description copied from interface:IGosuParser
Parses a Gosu expression. If that fails, attempts to parse a Gosu program (which is also an expression, but which has a different grammar.- Specified by:
parseExpOrProgram
in interfaceIGosuParser
- Parameters:
partId
- Script part id- Returns:
- either a pure expression or Program, depending on the source
- Throws:
ParseResultsException
- if neither an expression nor a program parses according to the Gosu grammar. We try to make a best guess as to which IParseResultsException to throw, so that the errors are as close as possible to the true cause of the IParseResultsException
-
parseExpOrProgram
public IExpression parseExpOrProgram(IScriptPartId partId, boolean isolatedScope, boolean assignRuntime) throws ParseResultsException Description copied from interface:IGosuParser
Parses a Gosu expression. If that fails, attempts to parse a Gosu program (which is also an expression, but which has a different grammar.- Specified by:
parseExpOrProgram
in interfaceIGosuParser
- Parameters:
partId
- Script part idisolatedScope
- if false, the program will modify the symbol table at the current scope- Returns:
- either a pure expression or Program, depending on the source
- Throws:
ParseResultsException
- if neither an expression nor a program parses according to the Gosu grammar. We try to make a best guess as to which IParseResultsException to throw, so that the errors are as close as possible to the true cause of the IParseResultsException
-
parseExpOrProgram
public IExpression parseExpOrProgram(IScriptPartId partId, IType typeExpected, boolean isolatedScope, boolean assignRuntime) throws ParseResultsException - Throws:
ParseResultsException
-
parseTypeLiteral
Description copied from interface:IGosuParser
Parses a type literal expression. The source must obviously satisfy the type literal syntax.- Specified by:
parseTypeLiteral
in interfaceIGosuParser
- Throws:
ParseResultsException
-
isParsed
public boolean isParsed()- Specified by:
isParsed
in interfaceIGosuParser
- Returns:
- Whether or not the referenced Gosu source has been parsed.
-
setParsed
protected void setParsed(boolean bParsed) -
getTokenizer
- Specified by:
getTokenizer
in interfaceIGosuParser
- Overrides:
getTokenizer
in classParserBase
-
getLocationsList
- Overrides:
getLocationsList
in classParserBase
-
getLocations
- Specified by:
getLocations
in interfaceIGosuParser
- Returns:
- All the locations corresponding to parsed elements.
-
peekLocation
-
hasWarnings
public boolean hasWarnings()- Specified by:
hasWarnings
in interfaceIGosuParser
- Returns:
- Did the most recent parse have warnings
-
isThrowParseResultsExceptionForWarnings
public boolean isThrowParseResultsExceptionForWarnings()- Specified by:
isThrowParseResultsExceptionForWarnings
in interfaceIGosuParser
-
setThrowParseExceptionForWarnings
public void setThrowParseExceptionForWarnings(boolean bThrowParseExceptionForWarnings) - Specified by:
setThrowParseExceptionForWarnings
in interfaceIGosuParser
-
parseExpression
void parseExpression() -
parseExpression
-
parseExpression
-
parseExpressionNoVerify
-
setContextInferenceManager
-
pushInferredContextTypes
-
popInferredContextTypes
public void popInferredContextTypes() -
getContextType
-
convertNullLiterals
-
convertNumberLiteralsToContextType
-
getNumberTypeFromContextType
-
parseConditionalExpression
void parseConditionalExpression() -
_parseConditionalExpression
void _parseConditionalExpression() -
isPrimitiveOrBoxedOrBigIntegerOrBigDecimal
-
findLeastUpperBoundWithCoercions
private IType findLeastUpperBoundWithCoercions(ConditionalTernaryExpression cte, Expression first, Expression second) -
canCoerceFromString
-
wrapExpressionIfNeeded
-
parseConditionalOrExpression
void parseConditionalOrExpression() -
parseConditionalAndExpression
void parseConditionalAndExpression() -
parseBitwiseOrExpression
void parseBitwiseOrExpression() -
ensureOperandIntOrLongOrBoolean
-
isPrimitiveOrBoxedIntegerType
-
ensureOperandBoolean
-
ensureOperandIntOrLong
-
parseBitwiseXorExpression
void parseBitwiseXorExpression() -
parseBitwiseAndExpression
void parseBitwiseAndExpression() -
parseEqualityExpression
private void parseEqualityExpression() -
isConditional
-
_parseEqualityExpression
private void _parseEqualityExpression() -
warnOnSuspiciousEqualsOperator
-
isThisPointer
-
isEqualsArgReference
-
verifyCoercionSymmetry
-
verifyRelationalOperandsComparable
-
verifyConditionalTypes
-
areMetaTypes
-
verifyWithComparableDimension
-
parseRelationalExpression
void parseRelationalExpression() -
parseIntervalExpression
void parseIntervalExpression() -
_parseIntervalExpression
void _parseIntervalExpression() -
parseBitshiftExpression
void parseBitshiftExpression() -
matchRightShift
private boolean matchRightShift() -
parseAdditiveExpression
void parseAdditiveExpression() -
parseMultiplicativeExpression
void parseMultiplicativeExpression() -
parseTypeAsExpression
void parseTypeAsExpression() -
checkComparableAndCastable
-
parseUnaryExpression
void parseUnaryExpression() -
parseUnaryExpressionNotPlusMinus
void parseUnaryExpressionNotPlusMinus() -
checkMemberAccessIsReadable
private void checkMemberAccessIsReadable() -
_parseUnaryExpressionNotPlusMinus
void _parseUnaryExpressionNotPlusMinus() -
parseEvalExpression
private void parseEvalExpression() -
isCaptureSymbolsForEval
public boolean isCaptureSymbolsForEval()- Specified by:
isCaptureSymbolsForEval
in interfaceIGosuParser
-
setCaptureSymbolsForEval
public void setCaptureSymbolsForEval(boolean bCaputreSymbolsForEval) - Specified by:
setCaptureSymbolsForEval
in interfaceIGosuParser
-
parsePrimaryExpression
void parsePrimaryExpression() -
_parsePrimaryExpression
-
parseBindableExpression
void parseBindableExpression() -
parseBindableExpression
void parseBindableExpression(boolean bPostfix) -
parseBindableExpression
-
parseBindableExpression
-
parseBindingExpression
-
parseBindingExpression
-
hasMethod_Cached
-
parsePrefixUnitBindingExpression
-
unitExprType
-
backtrackBinderExpr
-
parsePostfixUnitBindingExpression
-
tryPostfixUnitExpr
private boolean tryPostfixUnitExpr(int mark, int locationsCount, Expression lhsExpr, Token priorToken, String connectorString, boolean testConnector) -
isConnectorStringValid
private boolean isConnectorStringValid(boolean bPostfix, String connectorString, Expression unitExpr, IType unitBinderType) -
parseUnitExpression
private boolean parseUnitExpression() -
parseUnitExpressionFactor
-
hasMethod
-
parseBooleanLiteral
-
parseNullLiteral
-
parseStandAloneDataStructureInitialization
-
parseStandAloneDataStructureInitialization
private boolean parseStandAloneDataStructureInitialization(Token token, boolean bAvoidContextType, boolean bBacktracking) -
maybeReparseWithoutContextType
private boolean maybeReparseWithoutContextType(int mark, int iLocationsCount, Expression initializerExpression) -
shouldThisExpressionAvoidTheContextType
private boolean shouldThisExpressionAvoidTheContextType() -
getTypes
-
getInitializableType
-
getCurrentInitializableContextType
-
findImpl
-
supportsInitializer
-
parseBlockExpression
private void parseBlockExpression() -
getBlockReturnType
-
getContextTypesForBlockArgument
-
inferReturnTypeForBlockArgument
-
parseNewExpression
void parseNewExpression()new-expression new <type-expression> ( [<argument-list>] ) { [<initialization-expression>] } new <type-expression> [ <expression> ] new <type-expression> [] { [<array-value-list>] } -
parseNewExpressionOrAnnotation
void parseNewExpressionOrAnnotation(boolean bAnnotation) -
_parseNewExpressionOrAnnotation
void _parseNewExpressionOrAnnotation(boolean bAnnotation, boolean bBacktracking) -
maybeInferTypeLiteralFromContextType
-
parseNewExpressionOrAnnotation
void parseNewExpressionOrAnnotation(IType declaringClass, boolean bAnnotation, boolean bNoArgNoParenthesis, TypeLiteral typeLiteral, int mark) -
maybeChangeToInferredType
private IType maybeChangeToInferredType(IType declaringClass, TypeLiteral typeLiteral, MethodScore bestConst) -
scrubAnnotationConstructors
private void scrubAnnotationConstructors(IType declaringClass, List<IConstructorType> listConstructorTypes) -
isAnnotation
-
getPreliminaryConstructorTypes
private ArrayList<IConstructorType> getPreliminaryConstructorTypes(IType declaringClass, NewExpression e) -
parseAnonymousInnerClass
private IType parseAnonymousInnerClass(IType declaringClass, TypeLiteral typeLiteral, NewExpression newExpr, int state, int mark) -
_parseAnonymousInnerClass
private void _parseAnonymousInnerClass(IType declaringClass, IGosuClassInternal gsDeclaringClass, ICompilableTypeInternal enclosingType, int iNameOffset, NewExpression newExpr, int mark) -
isParsingStaticFeature
public boolean isParsingStaticFeature() -
pushParsingStaticMember
-
popParsingStaticMember
public void popParsingStaticMember() -
isParsingAbstractConstructor
public boolean isParsingAbstractConstructor() -
pushParsingAbstractConstructor
-
popParsingAbstractConstructor
public void popParsingAbstractConstructor() -
getConstructor
-
verifyConstructorIsAccessible
private void verifyConstructorIsAccessible(IType instanceClass, NewExpression e, IConstructorType constructorType, boolean bAnonymous) -
getModifierString
-
parseObjectInitializer
-
_parseObjectInitializer
-
_doParseObjectInitializer
-
parseInitializerAssignment
-
parseInitializerIdentifier
-
getGsConstructorInfo
private GosuConstructorInfo getGsConstructorInfo(IConstructorInfo ci, IGosuClassInternal gsInstanceClass) -
isConcreteInitializableType
-
isInitializableType
-
verifyCanConstructInnerClassFromCallSite
-
isConstructingNonStaticInnerClassFromNonStaticContext
private boolean isConstructingNonStaticInnerClassFromNonStaticContext(IType innersEnclosingClass, IGosuClassInternal constructingFromClass) -
isNonStaticInnerClassConstructableFromCurrentFunction
private boolean isNonStaticInnerClassConstructableFromCurrentFunction(IType innersEnclosingClass, IGosuClassInternal constructingFromClass) -
_parseInitializerExpression
-
getImplicitConstructor
-
parseCollectionInitializerList
-
parseMapInitializerList
-
parseArrayValueList
-
parseIndirectMemberAccess
private void parseIndirectMemberAccess(int iOffset, int iLineNum, int iColumn) -
parseIndirectMemberAccess
private void parseIndirectMemberAccess(int iOffset, int iLineNum, int iColumn, boolean bParsingTypeLiteralOnly) -
maybeReplacePackageExprWithTypeLiteral
private void maybeReplacePackageExprWithTypeLiteral(int iOffset, int iLineNum, int iColumn, Expression expr) -
maybeReplaceErrantPackageExprWithEnumConstEpr
private boolean maybeReplaceErrantPackageExprWithEnumConstEpr(int iOffset, int iLineNum, int iColumn, Expression expr) -
_parseIndirectMemberAccess
boolean _parseIndirectMemberAccess(boolean bParseTypeLiteralOnly) -
verifySuperTypeIsDeclaredInCompilingClass
-
isSuperCall
-
parseFeatureLiteral
-
parseErrantFeatureLiteralParameterization
-
evalTypes
-
allTypeLiterals
-
setOperatorLineNumber
-
parseNameOrMethodCall
-
_parseNameOrMethodCall
-
parseMethodCall
private void parseMethodCall(String[] t, int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol, int markBeforeTypeArgs, int iLocBeforeTypeArgs, int markAfterTypeArgs) -
hasParseExceptions
-
maybeParseImpliedThisMethod
private boolean maybeParseImpliedThisMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs) -
maybeParseImpliedStaticMethod
private void maybeParseImpliedStaticMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs) -
maybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr
private void maybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr(String[] t, int iOffset, int iLineNum, int iColumn, IParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol, int mark, int iLocationsCount) -
backtrack
void backtrack(int mark, int iLocationsCount) -
backtrack
-
parseMethodCall
private void parseMethodCall(String[] t, IParserState state, MethodCallExpression e, IType[] typeParameters, String strFunction, ISymbol functionSymbol) -
verifyReifiedCallHasProperContext
-
supportPropertyAccessAsGetterCall
private boolean supportPropertyAccessAsGetterCall(String[] t, String strFunction, IFunctionSymbol function) -
maybeCaptureSymbol
-
isInSeparateStringTemplateExpression
private boolean isInSeparateStringTemplateExpression() -
possiblyResolveFunctionSymbol
-
isBlockSym
-
staticRefToNonStaticFunc
-
staticRefToNonStaticProp
-
boundFunctionType
-
getDFSForFunctionType
-
verifyNotCallingOverridableFunctionFromCtor
-
verifyNotCallingOverridableFunctionFromCtor
-
isParsingConstructor
private boolean isParsingConstructor() -
parsePossibleFunctionParameterization
-
parseIdentifier
-
parseIdentifier
-
verifyReifiedCallHasProperContext
private void verifyReifiedCallHasProperContext(PropertyAccessIdentifier e, DynamicPropertySymbol dps) -
parseIdentifierOrTypeLiteralOrEnumConstant
private void parseIdentifierOrTypeLiteralOrEnumConstant(String[] T, int iOffset, int iLineNum, int iColumn) -
tryToMakeTypeLiteral
private void tryToMakeTypeLiteral(String[] T, int iOffset, int iLineNum, int iColumn, String name, Expression errantExpression) -
parseNamespaceStartOrRelativeType
-
parseUnqualifiedEnumConstant
-
verifyArgCount
-
verifyOverrideNotOnMethodThatDoesNotExtend
private void verifyOverrideNotOnMethodThatDoesNotExtend(ParsedElement element, DynamicFunctionSymbol dfs) -
verifyArgCount
-
parsePlainFunction
-
parseDynamicFunction
-
parseMemberAccess
private void parseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly) -
parseMemberAccess
private void parseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty) -
parseMethodMember
private void parseMethodMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark) -
maybeOpenParenIsForParenthesizedExpr
private void maybeOpenParenIsForParenthesizedExpr(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark, int iLocationsCount) -
isOpenParenOnNextLine
private boolean isOpenParenOnNextLine(int mark) -
parseMethodMember
private void parseMethodMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart) -
findFunction
-
verifyReifiedCallHasProperContext
-
parsePropertyMember
private void parsePropertyMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, IType rootType, boolean bExpansion) -
verifyReifiedCallHasProperContext
-
verifySuperAccess
private void verifySuperAccess(Expression rootExpression, Expression memberExpr, IAttributedFeatureInfo feature, String strMemberName) -
shouldParseMemberInstead
-
isEndOfArgExpression
private boolean isEndOfArgExpression() -
isParenthesisTerminalExpression
private boolean isParenthesisTerminalExpression() -
isParenthesisTerminalExpression
private boolean isParenthesisTerminalExpression(boolean bMatchOpeningParen) -
isEndOfExpression
private boolean isEndOfExpression() -
getInnerClass
-
maybeParameterizeOnCtxType
-
getPreliminaryFunctionTypes
private List<IFunctionType> getPreliminaryFunctionTypes(String strMemberName, BeanMethodCallExpression e, IType rootType, IType[] typeParameters) -
addJavaPropertyMethods
private void addJavaPropertyMethods(String strMemberName, IType rootType, List<IFunctionType> listFunctionTypes) -
maybeGetProxiedPropertyInfo
-
isBlockInvoke
-
isErrorType
-
parameterizeFunctionTypes
private ArrayList<IFunctionType> parameterizeFunctionTypes(Expression expression, IType[] typeParameters, List<IFunctionType> listFunctionTypes) -
handleAbstractCtor
private void handleAbstractCtor(int iTokenStart, String strMemberName, BeanMethodCallExpression e, IParserState state) -
verifyCanParameterizeType
-
isTypeParamHeaderCompiling
-
parseFunctionParameterization
-
parseArgumentList
private MethodScore parseArgumentList(IType rootType, ParsedElement element, List<? extends IInvocableType> listFunctionTypes, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) -
findLeastParams
Param count is the tiebreaker when vararg methods are involved. The only way there can be valid method calls differing by param count is when one or more vararg methods match. If a non-vararg method matches with fewer params, this indicates the vararg method matched because the vararg argument was not present in the call. -
reparseWithCorrectFunctionAndGtfo
private MethodScore reparseWithCorrectFunctionAndGtfo(MethodScore bestScore, boolean bShouldScoreMethods, List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) -
reparseErrorsAreDifferent
private boolean reparseErrorsAreDifferent(TypeVarToTypeMap inferenceMap, List<Expression> argExpressions) -
errorsSame
-
reparseArguments
private MethodScore reparseArguments(MethodScore bestScore, List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided) -
maskCurrentFunctionTypeVarsFromPriorInference
-
maybeInferFunctionTypeVarsFromReturnType
private void maybeInferFunctionTypeVarsFromReturnType(IInvocableType invType, TypeVarToTypeMap inferenceMap) -
factorInParseErrors
-
hasContextSensitiveExpression
-
isGenericMethodCall
-
maybeAvoidNestedMethodScoring
private List<? extends IInvocableType> maybeAvoidNestedMethodScoring(List<? extends IInvocableType> listFunctionTypes) -
backtrackArgParsing
-
maybeRemoveNonGenericMethods
private List<? extends IInvocableType> maybeRemoveNonGenericMethods(List<? extends IInvocableType> listFunctionTypes, IType[] typeParams) -
maybeReassignOffsetForArgumentListClause
private void maybeReassignOffsetForArgumentListClause(int iArgs, List<Expression> argExpressions, int iOffset, int iLineNum, int iColumn) -
maybeBoundFunctionTypeVars
private IInvocableType maybeBoundFunctionTypeVars(IInvocableType inferredFunctionType, TypeVarToTypeMap inferenceMap) -
assignArgExprPosition
-
addMisingArgsWithDefaultValues
void addMisingArgsWithDefaultValues(ParsedElement element, IInvocableType funcType, List<Expression> argExpressions, List<LightweightParserState> parserStates, boolean bShouldScoreMethods) -
parseArgExpression
private int parseArgExpression(IInvocableType funcType, int iArgs, List<Expression> argExpressions, TypeVarToTypeMap inferenceMap, List<LightweightParserState> parserStates, Set<String> namedArgs, boolean bMethodScoring) -
useDynamicTypeIfDynamicRoot
-
getDefaultValueOrPlaceHolderForParam
-
parseNamedParamExpression
-
getParamTypeFromParamName
-
parseNamedParamIdentifier
private void parseNamedParamIdentifier() -
isDynamicMethod
-
makeDynamicMethodScore
private MethodScore makeDynamicMethodScore(List<? extends IInvocableType> listFunctionTypes, List<Expression> argExpressions) -
getParamTypes
-
scoreMethod
private MethodScore scoreMethod(IType callsiteEnclosingType, IType rootType, IInvocableType funcType, List<? extends IInvocableType> listFunctionTypes, List<Expression> argExpressions, boolean bSimple, boolean bLookInCache) -
boundCtxType
-
boundCtxType
-
inferFunctionTypeVariables
private void inferFunctionTypeVariables(IType rawContextType, IType boundContextType, Expression expression, TypeVarToTypeMap inferenceMap) -
inferArgType
-
handleImplicitCoercionsInArgs
private void handleImplicitCoercionsInArgs(ParsedElement element, IType[] argTypes, IType[] rawArgTypes, List<Expression> args) -
extractContextTypes
-
verifyArgTypes
private void verifyArgTypes(IType[] argTypes, List<Expression> argExpressions, List<LightweightParserState> parserStates) -
parseLiteral
-
_parseLiteral
-
parseRelativeFeatureLiteral
-
parseNumberLiteral
-
atNumberLiteralStart
private boolean atNumberLiteralStart() -
parseNumberLiteral
-
parseNumericValue
-
parseIntOrLongOrBigInt
-
stripPrefix
-
parseDoubleOrBigDec
-
parseFloat
-
parseDouble
-
parseExplicitlyTypedNumericLiteral
-
isPrefixNumericLiteral
-
parsePrefixNumericLiteral
-
isHexLiteral
-
isBinLiteral
-
parsePostfixNumericLiteral
-
maybeStripTypeModifier
-
hasTypeModifier
-
pushErrorNumberLiteral
-
getNumericTypeFrom
-
parseCharLiteral
-
parseStringLiteralSeparately
private boolean parseStringLiteralSeparately() -
parseStringLiteral
-
_parseStringLiteral
-
parseTemplatizedStringLiteral
-
parseTypeLiteral
public boolean parseTypeLiteral()Description copied from interface:IGosuParser
Consumes a type literal from the current tokenizer, if one exists.- Specified by:
parseTypeLiteral
in interfaceIGosuParser
- Returns:
- true if a type literal was found, false otherwise
-
parseTypeLiteral
-
parseTypeLiteral
boolean parseTypeLiteral(boolean bInterface) -
parseTypeLiteral
-
parseTypeLiteralForNewExpression
void parseTypeLiteralForNewExpression() -
_parseTypeLiteralWithAggregateSyntax
boolean _parseTypeLiteralWithAggregateSyntax(Token token, boolean bIgnoreArrayBrackets, boolean bInterface) -
_parseTypeLiteral
-
matchPrimitiveType
boolean matchPrimitiveType(boolean bSuperThis) -
parseAggregateTypeLiteral
private void parseAggregateTypeLiteral(boolean bInterface) -
addToCompoundType
-
parseBlockLiteral
void parseBlockLiteral() -
_parseBlockLiteral
void _parseBlockLiteral() -
parseTypeLiteral
void parseTypeLiteral(String[] T, boolean bIgnoreArrayBrackets, boolean bInterface, int iOffset, int iLineNum, int iColumn) -
verifyTypeAccessible
-
parseCompoundTypeLiteralExpression
private void parseCompoundTypeLiteralExpression(String[] T, boolean bInterface, int iOffset, int iLineNum, int iColumn) -
isTypeParameterErrorMsg
-
resolveArrayOrParameterizationPartOfTypeLiteral
private boolean resolveArrayOrParameterizationPartOfTypeLiteral(String[] T, boolean bIgnoreArrayBrackets, TypeLiteral e) - Returns:
- True if parsed parameterized type.
-
isParsingCompileTimeConstantExpression
private boolean isParsingCompileTimeConstantExpression() -
parseArrayType
-
parseTypeParameters
-
makeTypeParameterListClause
private void makeTypeParameterListClause(int iOffset, int iLineNum, int iColumn, List<TypeLiteral> paramTypes) -
parseParameterType
-
boxTypeLiteralsType
-
parseStatement
boolean parseStatement() -
parseStatement
boolean parseStatement(boolean bAsStmtBlock) -
parseStatement
boolean parseStatement(boolean forceKeepStmtBlock, boolean bAsStmtBlock) -
hasSemicolon
-
parseLoopStatement
boolean parseLoopStatement() -
_parseStatement
boolean _parseStatement() -
parseAssertStatement
private void parseAssertStatement() -
areUsingStatementsAllowedInStatementLists
private boolean areUsingStatementsAllowedInStatementLists() -
getStatementDepth
private int getStatementDepth() -
incStatementDepth
private void incStatementDepth() -
decStatementDepth
private void decStatementDepth() -
parseLocalVarStatement
-
parseVarStatement
-
isLocalVarTopLevelFunctionBodyStmt
private boolean isLocalVarTopLevelFunctionBodyStmt() -
detectLikelyJavaCast
-
recoverFromJavaStyleCast
-
parseVarPropertyClause
DynamicPropertySymbol parseVarPropertyClause(VarStatement varStmt, ModifierInfo modifiers, String strVarIdentifier, IType varType, boolean parseInitializer) -
makeProperties
DynamicPropertySymbol makeProperties(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, boolean bGetter, boolean bSetter) -
makeGetter
private DynamicPropertySymbol makeGetter(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, boolean bOldSyntax) -
makeSetter
private DynamicPropertySymbol makeSetter(VarStatement varStmt, String strVarIdentifier, String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, DynamicPropertySymbol dps, boolean bOldSyntax) -
transferModifierInfo
private void transferModifierInfo(VarStatement varStmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, DynamicFunctionSymbol dfs) -
transferModifierInfo
private void transferModifierInfo(ParsedElement stmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, EnhancementDynamicFunctionSymbol dfs) -
setFromTargetModifier
-
appliesToElementType
-
parseDelegateStatement
-
parseSwitchStatement
private void parseSwitchStatement() -
parseDoWhileStatement
private void parseDoWhileStatement() -
verifyLoopConditionNotAlwaysFalse
-
parseWhileStatement
private void parseWhileStatement() -
parseForEachStatement
private void parseForEachStatement() -
parseIndexVar
-
parseIteratorVar
-
parseReturnStatement
private void parseReturnStatement() -
inConstructorCtx
private boolean inConstructorCtx() -
setReturnNullExpr
-
parseThrowStatement
private void parseThrowStatement() -
parseTryCatchFinallyStatement
private void parseTryCatchFinallyStatement() -
parseIfStatement
private void parseIfStatement() -
parseUsingStatement
private void parseUsingStatement() -
parseVarStatementsInUsingStatement
-
verifyTypeForUsingStatementPredicate
-
isAssignableFrom
-
maybeRemoveIMonitorLockError
-
parseStatementBlock
private void parseStatementBlock() -
parseStatementBlock
private void parseStatementBlock(boolean bMatchClosingBrace) -
parseStatementBlock
private void parseStatementBlock(boolean forceKeepStmtBlock, boolean bMatchClosingBrace) -
parseNamespaceStatement
void parseNamespaceStatement() -
parseNamespaceStatement_editor
void parseNamespaceStatement_editor() -
parseNamespaceStatement_normal
void parseNamespaceStatement_normal() -
parseUsesStatementList
- Specified by:
parseUsesStatementList
in interfaceIGosuParser
-
parseUsesStatement
void parseUsesStatement() -
parseUsesStatement
void parseUsesStatement(boolean bResolveTypes) -
processUsesStatementFeatureLiteral
private void processUsesStatementFeatureLiteral(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral, FeatureLiteral fl) -
processUsesStatement
private void processUsesStatement(UsesStatement usesStmt, TypeLiteral typeLiteral, IFeatureInfo fi, IGosuClass gsType) -
getAllStaticFeatures
-
processUsesStatementTypeLiteral
private void processUsesStatementTypeLiteral(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral) -
parseCaseClauses
-
parseCaseClause
-
verifyCaseIsUnique
-
isIsolatedCase
-
warnIfCaseNotTerminated
-
parseDefaultClause
-
checkInstruction
void checkInstruction(boolean bProcessDirectives) -
checkUnexpectedEof
private void checkUnexpectedEof() -
clearExpressionInTemplateUnlessParsingEvaluateFunctionBody
-
removeInnerClasses
-
removeLocation
-
parseDirective
private void parseDirective(boolean processDirectives) -
parseAssignmentOrMethodCall
boolean parseAssignmentOrMethodCall() -
parseAssignment
-
isParsingProgramEvaluateMethod
private boolean isParsingProgramEvaluateMethod() -
isSymbolInScopeDirectly
-
parseAssignmentRhs
-
buildRhsOfCompoundOperator
-
matchAssignmentOperator
-
matchRightShiftAssign
-
parseFunctionOrPropertyDeclaration
-
parsePropertyDefinition
boolean parsePropertyDefinition() -
getOrCreateDynamicPropertySymbol
DynamicPropertySymbol getOrCreateDynamicPropertySymbol(ParsedElement parsedElement, IGosuClassInternal gsClass, DynamicFunctionSymbol dfs, boolean bGetter) -
parseFunctionDefinition
boolean parseFunctionDefinition() -
parseBaseFunctionDefinition
FunctionStatement parseBaseFunctionDefinition(FunctionStatement functionStmt, boolean bProperty, boolean bGetter, ModifierInfo modifiers) -
getLastStatement
-
isValidAnnotationMethodReturnType
-
putThisAndSuperSymbols
-
findProgramPropertyDfs
private DynamicFunctionSymbol findProgramPropertyDfs(String strFunctionName, ArrayList<ISymbol> args) -
getTypeVarDefsFromDecl
-
findCorrespondingDeclDfs
-
isDeclarationKeyword
-
assignPossibleDuplicateDfs
static DynamicFunctionSymbol assignPossibleDuplicateDfs(DynamicFunctionSymbol dfsDecl, Iterable symbols) -
addNameInDeclaration
void addNameInDeclaration(String strName, int iOffsetName, int iLineNumName, int iColumnName, boolean bHasName) -
parsingFunctionsEncloseMyClass
private boolean parsingFunctionsEncloseMyClass() -
parseProgramEntryPointBody
FunctionStatement parseProgramEntryPointBody() -
getProgramEntryPointDfs
-
handleExpressionStatementList
-
wrapProgramExpressionInReturnStmt
-
addDefaultReturnStmt
-
parseProgramFunctionBody
-
parseProgramExpr
private void parseProgramExpr() -
maybeSetExternalSymbols
private void maybeSetExternalSymbols() -
removeLocationsFrom
void removeLocationsFrom(int iLocationsCount) -
isTerminal
-
parseFunctionBody
-
parseFunctionDecl
-
parseFunctionDecl
DynamicFunctionSymbol parseFunctionDecl(ParsedElement element, boolean bProperty, boolean bGetter, ModifierInfo modifiers) -
parseFunctionDecl
DynamicFunctionSymbol parseFunctionDecl(ParsedElement element, String T, boolean bProperty, boolean bGetter, ModifierInfo modifiers) -
matchNonDeclarationKeyword
private boolean matchNonDeclarationKeyword() -
maybeEatNonDeclKeyword
-
verifyFunction
-
verifyReified
private void verifyReified(boolean bValidOverrideFound, ParsedElement element, DynamicFunctionSymbol dfs) -
areParametersEquivalent_Enhancement
private boolean areParametersEquivalent_Enhancement(DynamicFunctionSymbol dfs1, DynamicFunctionSymbol dfs2) -
maybeAddPrivateFunctionsIfSuperInSamePackage
private List<IFunctionSymbol> maybeAddPrivateFunctionsIfSuperInSamePackage(String name, List<IFunctionSymbol> functions) -
addAllNonstaticPrivateMethods
private void addAllNonstaticPrivateMethods(String name, IGosuClassInternal superClass, List<IFunctionSymbol> functions) -
propertyTypeDiffers
-
verifySameNumberOfFunctionTypeVars
private void verifySameNumberOfFunctionTypeVars(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting) -
areDFSsInSameNameSpace
-
verifyNoImplicitPropertyMethodConflicts
private void verifyNoImplicitPropertyMethodConflicts(ParsedElement element, DynamicFunctionSymbol dfs) -
verifyFunctionConflictsWithPropoertySetter
void verifyFunctionConflictsWithPropoertySetter(ParsedElement element, DynamicFunctionSymbol dfs, DynamicPropertySymbol dps) -
verifyPropertySetterConflictsWithFunction
void verifyPropertySetterConflictsWithFunction(ParsedElement element, DynamicFunctionSymbol dfs, String propName, DynamicFunctionSymbol existingDfs) -
returnTypesCompatible
-
areParametersEquivalent
private boolean areParametersEquivalent(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting, IType... extraParams) -
_areParametersEquivalent
private boolean _areParametersEquivalent(IDynamicFunctionSymbol dfs1, IDynamicFunctionSymbol dfs2, IType[] args, IType[] toArgs) -
maybeResolveFunctionTypeVars
-
doParametersReifyToSameBytecodeType
public boolean doParametersReifyToSameBytecodeType(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting) -
doTypesReifyToTheSameBytecodeType
-
getOwningTypeForDfs
-
verifyNotWeakerAccess
private void verifyNotWeakerAccess(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting) -
parseParameterDeclarationList
public ArrayList<ISymbol> parseParameterDeclarationList(IParsedElement element, boolean bStatic, List<IType> inferredArgumentTypes) - Specified by:
parseParameterDeclarationList
in interfaceIGosuParser
-
parseParameterDeclarationList
public ArrayList<ISymbol> parseParameterDeclarationList(IParsedElement element, boolean bStatic, List<IType> inferredArgumentTypes, boolean bProperty, boolean bGetter, boolean bEmpty, boolean bVarDynamicArg) -
parseLocalAnnotations
-
parseTypeVariableDefs
List<ITypeVariableDefinitionExpression> parseTypeVariableDefs(ParsedElement parsedElem, boolean bFunction, List<TypeVariableDefinitionImpl> typeVarDefListFromDecl) -
parseTypeVariableDefList
List<ITypeVariableDefinitionExpression> parseTypeVariableDefList(ParsedElement parsedElem, boolean bForFunction, List<TypeVariableDefinitionImpl> typeVarDefListFromDecl) -
typeVarExists
public boolean typeVarExists(Map<String, ITypeVariableDefinition> typeVarMap, TypeVariableDefinition typeVarDef) -
parseTypeVariableDefinition
void parseTypeVariableDefinition(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass) -
_parseTypeVariableDefinition
boolean _parseTypeVariableDefinition(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass) -
parseVariance
-
getEnclosingType
-
isCompilingOrReparsingHeader
private boolean isCompilingOrReparsingHeader() -
pushExpression
- Overrides:
pushExpression
in classParserBase
-
maybeVerifyDoubleLiterals
-
maybeVerifyDoubleLiteral
-
popExpression
- Specified by:
popExpression
in interfaceIGosuParser
- Overrides:
popExpression
in classParserBase
-
setTokenizer
- Specified by:
setTokenizer
in interfaceIGosuParser
-
peekExpression
- Overrides:
peekExpression
in classParserBase
-
peekParsedElement
-
pushStatement
- Overrides:
pushStatement
in classParserBase
-
popStatement
- Overrides:
popStatement
in classParserBase
-
peekStatement
- Overrides:
peekStatement
in classParserBase
-
pushDynamicFunctionSymbol
-
popDynamicFunctionSymbol
-
peekDynamicFunctionSymbol
-
clearDfsStack
protected void clearDfsStack() -
putDfsDeclsInTable
- Specified by:
putDfsDeclsInTable
in interfaceIGosuParser
-
putDfsDeclInSetByName
- Specified by:
putDfsDeclInSetByName
in interfaceIGosuParser
-
nextIndexOfErrantDuplicateDynamicSymbol
public int nextIndexOfErrantDuplicateDynamicSymbol(IDynamicSymbol ds, Collection<? extends ISymbol> symbols, boolean bCheckContains) -
symbolIn
-
setDfsDeclInSetByName
- Specified by:
setDfsDeclInSetByName
in interfaceIGosuParser
-
newDfsDeclInSetByName
protected void newDfsDeclInSetByName() -
getDfsDecls
- Specified by:
getDfsDecls
in interfaceIGosuParser
-
getFunctionTypesForName
-
resolveTypeLiteral
-
resolveTypeLiteral
-
getDfsDeclsForFunction
-
resolveTypeLiteral
Resolves the type literal given by strTypeName. If parentType is non null then strTypeName is assumed relative to the given parent.- Specified by:
resolveTypeLiteral
in interfaceIGosuParser
- Parameters:
strTypeName
-
-
resolveTypeLiteral
-
resolveTypeName
-
getTypeVarDef
-
getEnclosingTypeVars
-
resolveTypeByRelativeName
-
getTypeVariables
- Specified by:
getTypeVariables
in interfaceIGosuParser
-
setTypeVariables
-
parseClass
public IGosuClassInternal parseClass(String strQualifiedClassName, ISourceFileHandle sourceFile, boolean bThrowOnWarnings, boolean bFullyCompile) throws ParseResultsException Description copied from interface:IGosuParser
For use by code editors etc.- Specified by:
parseClass
in interfaceIGosuParser
- Throws:
ParseResultsException
-
getFunctionType
public IFunctionType getFunctionType(IType classBean, String functionName, Expression[] eArgs, List<IFunctionType> listAllMatchingMethods, GosuParser parser, boolean bMatchParamTypes) throws ParseException - Throws:
ParseException
-
checkForStaticMethod
private void checkForStaticMethod(IType classBean, Expression[] eArgs, String strMethod, GosuParser parserState) throws ParseException - Throws:
ParseException
-
inferFunctionType
private IInvocableType inferFunctionType(IInvocableType funcType, List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap) -
inferConstructor
-
inferFunction
private IInvocableType inferFunction(IInvocableType funcType, List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap) -
getPropertyNameFromMethodName
-
getPropertyNameFromMethodNameIncludingSetter
-
getPropertyNameFromMethodName
-
verifyPropertyWritable
private void verifyPropertyWritable(IType classRoot, String strProperty, boolean bFromObjInitializer) throws ParseException - Throws:
ParseException
-
getConstructorType
public IConstructorType getConstructorType(IType classBean, Expression[] eArgs, List<IConstructorType> listAllMatchingMethods, ParserBase parserState) throws ParseException Get the type of the method specified in the member path.- Parameters:
classBean
- The declaring class of the constructor.parserState
- The parserState that may be involved in the process of parsing a constructor. Can be null.- Returns:
- A Gosu type for the constructor.
- Throws:
ParseException
-
verifyCase
private void verifyCase(ParsedElement element, String foundName, String actualName, ResourceKey errorKey, boolean isEndsWithMatchOK) -
verifyCase
private void verifyCase(ParsedElement element, String foundName, String actualName, IParserState state, ResourceKey errorKey, boolean isEndsWithMatchOK) -
setWarnOnCaseIssue
public void setWarnOnCaseIssue(boolean warnOnCaseIssue) - Specified by:
setWarnOnCaseIssue
in interfaceIGosuParser
-
setEditorParser
public void setEditorParser(boolean bStudioEditorParser) - Specified by:
setEditorParser
in interfaceIGosuParser
-
isEditorParser
public boolean isEditorParser()- Specified by:
isEditorParser
in interfaceIGosuParser
-
getState
- Specified by:
getState
in interfaceIGosuParser
-
isParsingAnnotation
public boolean isParsingAnnotation() -
setParsingAnnotation
public void setParsingAnnotation(boolean parsingAnnotation) -
isAllowingWildcards
public boolean isAllowingWildcards() -
setAllowWildcards
public void setAllowWildcards(boolean allowWildcards) -
isIgnoreTypeDeprecation
public boolean isIgnoreTypeDeprecation() -
pushIgnoreTypeDeprecation
public void pushIgnoreTypeDeprecation() -
popIgnoreTypeDeprecation
public void popIgnoreTypeDeprecation() -
setLocationsFromProgramClassParser
-
maybeAdvanceTokenizerToEndOfSavedLocation
boolean maybeAdvanceTokenizerToEndOfSavedLocation() -
pushTypeVariableTypesToInfer
-
addTypeVarsToList
-
toString
-