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
public final class GosuParser extends ParserBase implements IGosuParser
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classGosuParser.FunctionDeclTransparentActivationContextprivate static classGosuParser.GosuParserTransparentActivationContext-
Nested classes/interfaces inherited from interface gw.lang.parser.IGosuParser
IGosuParser.ParseType, IGosuParser.Settings
-
-
Field Summary
-
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
Constructors Constructor Description GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint)GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint, ITypeUsesMap tuMap)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private 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_parseBlockLiteral()(package private) void_parseConditionalExpression()private void_parseEqualityExpression()(package private) boolean_parseIndirectMemberAccess(boolean bParseTypeLiteralOnly)private void_parseInitializerExpression(ContextType type)(package private) void_parseIntervalExpression()(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_parseStatement()(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_parseUnaryExpressionNotPlusMinus()private voidaddAllNonstaticPrivateMethods(java.lang.String name, IGosuClassInternal superClass, java.util.List<IFunctionSymbol> functions)private voidaddDefaultReturnStmt(DynamicFunctionSymbol dfsDecl, StatementList stmtList)private voidaddJavaPropertyMethods(java.lang.String strMemberName, IType rootType, java.util.List<IFunctionType> listFunctionTypes)(package private) voidaddMisingArgsWithDefaultValues(ParsedElement element, IInvocableType funcType, java.util.List<Expression> argExpressions, java.util.List<LightweightParserState> parserStates, boolean bShouldScoreMethods)(package private) voidaddNameInDeclaration(java.lang.String strName, int iOffsetName, int iLineNumName, int iColumnName, boolean bHasName)private voidaddToCompoundType(java.util.List<IType> types)private voidaddTypeVarsToList(java.util.List<IType> typeVariableTypes, IGenericTypeVariable[] typeVariables)private booleanallTypeLiterals(java.util.List<IExpression> args)private booleanappliesToElementType(IGosuAnnotation anno, java.lang.annotation.ElementType elemType)private booleanareDFSsInSameNameSpace(IDynamicSymbol newDfs, IDynamicSymbol existingDfs)private booleanareMetaTypes(IType lhsType, IType rhsType)private booleanareParametersEquivalent(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting, IType... extraParams)private booleanareParametersEquivalent_Enhancement(DynamicFunctionSymbol dfs1, DynamicFunctionSymbol dfs2)private booleanareUsingStatementsAllowedInStatementLists()private java.util.List<java.lang.Integer>assignArgExprPosition(java.util.List<? extends IInvocableType> listFunctionTypes, int iArgs, java.util.List<java.lang.Integer> namedArgOrder, int iArgPos)(package private) static DynamicFunctionSymbolassignPossibleDuplicateDfs(DynamicFunctionSymbol dfsDecl, java.lang.Iterable symbols)private voidassignRuntime(ParsedElement elem, boolean bIsolatedScope, IFileContext context, IType superType, IScriptPartId partId)private booleanatNumberLiteralStart()(package private) voidbacktrack(int mark, int iLocationsCount)(package private) voidbacktrack(int mark, int iLocationsCount, Expression expr)private voidbacktrackArgParsing(int mark, int iLocationsCount, java.util.List<Expression> argExpressions)private ExpressionbacktrackBinderExpr(int locationsCount, Expression primExpr)private ITypeboundCtxType(IType ctxType)private ITypeboundCtxType(IType ctxType, boolean bKeepTypeVars)private IFunctionTypeboundFunctionType(IFunctionType funcType)private voidboxTypeLiteralsType(TypeLiteral tl)private ExpressionbuildRhsOfCompoundOperator(Expression lhs, java.lang.String assignOp, Expression rhs)private booleancanCoerceFromString(Expression first, Expression second)private booleancheckComparableAndCastable(Expression lhs, Expression rhs)private voidcheckForStaticMethod(IType classBean, Expression[] eArgs, java.lang.String strMethod, GosuParser parserState)(package private) voidcheckInstruction(boolean bProcessDirectives)private voidcheckMemberAccessIsReadable()private voidcheckUnexpectedEof()protected voidclearDfsStack()private voidclearExpressionInTemplateUnlessParsingEvaluateFunctionBody(Expression e)private voidconvertNullLiterals(IType contextType)private voidconvertNumberLiteralsToContextType(IType contextType)private voiddecStatementDepth()private voiddetectLikelyJavaCast(Expression eas)booleandoParametersReifyToSameBytecodeType(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting)(package private) booleandoTypesReifyToTheSameBytecodeType(IType toArg, IType arg)private ExpressionensureOperandBoolean(Expression op)private ExpressionensureOperandIntOrLong(Expression op)private ExpressionensureOperandIntOrLongOrBoolean(Expression op)private booleanerrorsSame(java.util.List<IParseIssue> newErrors, java.util.List<IParseIssue> errors)private java.util.List<IType>evalTypes(java.util.List<IExpression> arguments)private java.util.List<java.util.List<IType>>extractContextTypes(java.util.List<? extends IInvocableType> funcTypes)private java.util.List<MethodScore>factorInParseErrors(java.util.List<MethodScore> scoredMethods)private DynamicFunctionSymbolfindCorrespondingDeclDfs(int iOffsetName, int iModifiers)private IFunctionTypefindFunction(java.util.List<IFunctionType> listFunctionTypes, boolean bNoArgsProvided)static ITypefindImpl(IType typeToInit)private MethodScorefindLeastParams(java.util.List<MethodScore> scoredMethods)Param count is the tiebreaker when vararg methods are involved.private ITypefindLeastUpperBoundWithCoercions(ConditionalTernaryExpression cte, Expression first, Expression second)private DynamicFunctionSymbolfindProgramPropertyDfs(java.lang.String strFunctionName, java.util.ArrayList<ISymbol> args)private java.util.List<IAttributedFeatureInfo>getAllStaticFeatures(IGosuClass gsType, java.lang.String name)private ITypegetBlockReturnType(IParsedElement blockBody, IType ctxType)private IConstructorInfogetConstructor(IType instanceClass)IConstructorTypegetConstructorType(IType classBean, Expression[] eArgs, java.util.List<IConstructorType> listAllMatchingMethods, ParserBase parserState)Get the type of the method specified in the member path.ContextTypegetContextType()private java.util.List<IType>getContextTypesForBlockArgument(ContextType ctxType)private ContextTypegetCurrentInitializableContextType()private ExpressiongetDefaultValueOrPlaceHolderForParam(int iParam, IInvocableType invType)java.util.Map<java.lang.String,java.util.List<IFunctionSymbol>>getDfsDecls()protected java.util.List<IFunctionSymbol>getDfsDeclsForFunction(java.lang.String strFunctionName)private IDynamicFunctionSymbolgetDFSForFunctionType(java.lang.String strFunction, MethodScore bestMethod)private ITypegetEnclosingType()private java.util.Map<java.lang.String,TypeVariableDefinition>getEnclosingTypeVars()IFunctionTypegetFunctionType(IType classBean, java.lang.String functionName, Expression[] eArgs, java.util.List<IFunctionType> listAllMatchingMethods, GosuParser parser, boolean bMatchParamTypes)protected java.util.List<IFunctionType>getFunctionTypesForName(java.lang.String strFunctionName)private GosuConstructorInfogetGsConstructorInfo(IConstructorInfo ci, IGosuClassInternal gsInstanceClass)private IConstructorInfogetImplicitConstructor(IType type)TypeVarToTypeMapgetInferenceMap()private ContextTypegetInitializableType()private ITypegetInnerClass(java.lang.String strMemberName, IType memberType, IHasInnerClass typeLiteralType)private StatementgetLastStatement(Statement statement)java.util.List<IParseTree>getLocations()(package private) java.util.List<ParseTree>getLocationsList()private java.lang.StringgetModifierString(IConstructorType constructorType)java.lang.StringgetNamespace()private ITypegetNumberTypeFromContextType(IType ctxType)private ITypegetNumericTypeFrom(java.lang.String strValue)(package private) DynamicPropertySymbolgetOrCreateDynamicPropertySymbol(ParsedElement parsedElement, IGosuClassInternal gsClass, DynamicFunctionSymbol dfs, boolean bGetter)private IGosuClassgetOwningTypeForDfs(IDynamicSymbol dfs)private ITypegetParamTypeFromParamName(IInvocableType invType, java.lang.String strParam, int[] iPos)private IType[]getParamTypes(java.util.List<Expression> argExpressions)private java.util.ArrayList<IConstructorType>getPreliminaryConstructorTypes(IType declaringClass, NewExpression e)private java.util.List<IFunctionType>getPreliminaryFunctionTypes(java.lang.String strMemberName, BeanMethodCallExpression e, IType rootType, IType[] typeParameters)private DynamicFunctionSymbolgetProgramEntryPointDfs()private java.lang.StringgetPropertyNameFromMethodName(java.lang.String strMethod)private java.lang.StringgetPropertyNameFromMethodName(java.lang.String strPrefix, java.lang.String strMethod)private java.lang.StringgetPropertyNameFromMethodNameIncludingSetter(java.lang.String strMethod)protected java.lang.StringgetScript()IScriptPartIdgetScriptPart()The context associated with the parser's script.Stack<IScriptPartId>getScriptPartIdStack()IParserStategetState()private intgetStatementDepth()ISymbolTablegetSymbolTable()Returns the parser's symbol table.SourceCodeTokenizergetTokenizer()ITokenizerInstructorgetTokenizerInstructor()The TokenizerInstructor to use for this parser.private java.util.List<IType>getTypes(java.util.List<? extends IExpression> list)ITypeUsesMapgetTypeUsesMap()Get the type uses map.private ITypeVariableDefinitiongetTypeVarDef(java.lang.String strTypeName)private java.util.List<TypeVariableDefinitionImpl>getTypeVarDefsFromDecl(IGenericTypeVariable[] typeVars)java.util.HashMap<java.lang.String,ITypeVariableDefinition>getTypeVariables()IScriptabilityModifiergetVisibilityConstraint()private voidhandleAbstractCtor(int iTokenStart, java.lang.String strMemberName, BeanMethodCallExpression e, IParserState state)private StatementListhandleExpressionStatementList(Expression expr)private voidhandleImplicitCoercionsInArgs(ParsedElement element, IType[] argTypes, IType[] rawArgTypes, java.util.List<Expression> args)private booleanhasContextSensitiveExpression(java.util.List<Expression> argExpressions)private static booleanhasMethod(IType type, java.lang.String name)private static booleanhasMethod_Cached(IType type, java.lang.String method)private booleanhasParseExceptions(Expression expr)private booleanhasSemicolon(IParsedElement stmt)private booleanhasTypeModifier(java.lang.String strValue)booleanhasWarnings()private booleaninConstructorCtx()private voidincStatementDepth()private ITypeinferArgType(IType contextType, TypeVarToTypeMap inferenceMap)private IInvocableTypeinferConstructor(ConstructorType ctorType, TypeVarToTypeMap inferenceMap)private IInvocableTypeinferFunction(IInvocableType funcType, java.util.List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap)private IInvocableTypeinferFunctionType(IInvocableType funcType, java.util.List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap)private voidinferFunctionTypeVariables(IType rawContextType, IType boundContextType, Expression expression, TypeVarToTypeMap inferenceMap)private ITypeinferReturnTypeForBlockArgument(ContextType contextType, IType[] unbound)booleanisAllowingWildcards()private booleanisAnnotation(IType type)private booleanisAssignableFrom(IType type1, IType type2)private booleanisBinLiteral(java.lang.String num)private booleanisBlockInvoke(Expression rootExpression, java.lang.String strMemberName, IType rootType)private booleanisBlockSym(ISymbol functionSymbol)booleanisCaptureSymbolsForEval()private booleanisCompilingOrReparsingHeader()private booleanisConcreteInitializableType(IType type)private booleanisConditional(IExpression expression)private booleanisConnectorStringValid(boolean bPostfix, java.lang.String connectorString, Expression unitExpr, IType unitBinderType)private booleanisConstructingNonStaticInnerClassFromNonStaticContext(IType innersEnclosingClass, IGosuClassInternal constructingFromClass)(package private) booleanisDeclarationKeyword(java.lang.String strKeyword)private booleanisDynamicMethod(java.util.List<? extends IInvocableType> listFunctionTypes)booleanisEditorParser()private booleanisEndOfArgExpression()private booleanisEndOfExpression()private booleanisEqualsArgReference(Expression expr)private booleanisErrorType(IType rootType)private booleanisForStringLiteralTemplate()booleanisGenerateRootExpressionAccessForProgram()private booleanisGenericMethodCall(Expression e)private booleanisHexLiteral(java.lang.String num)booleanisIgnoreTypeDeprecation()private booleanisInitializableType(IType type)private booleanisInSeparateStringTemplateExpression()private booleanisIsolatedCase(java.util.List<CaseClause> cases)private booleanisLocalVarTopLevelFunctionBodyStmt()private booleanisNonStaticInnerClassConstructableFromCurrentFunction(IType innersEnclosingClass, IGosuClassInternal constructingFromClass)private booleanisOpenParenOnNextLine(int mark)private booleanisParenthesisTerminalExpression()private booleanisParenthesisTerminalExpression(boolean bMatchOpeningParen)booleanisParsed()booleanisParsingAbstractConstructor()booleanisParsingAnnotation()private booleanisParsingCompileTimeConstantExpression()private booleanisParsingConstructor()booleanisParsingFieldInitializer()booleanisParsingFunction()(package private) booleanisParsingProgram()private booleanisParsingProgramEvaluateMethod()booleanisParsingStaticFeature()private booleanisParsingTypeListeralForNewExpression()private booleanisPrefixNumericLiteral(java.lang.String strValue)private booleanisPrimitiveOrBoxedIntegerType(IType type)private booleanisPrimitiveOrBoxedOrBigIntegerOrBigDecimal(IType type)private booleanisSuperCall(Expression rootExpression, Expression indexExpression)private booleanisSymbolInScopeDirectly(ISymbol idSym)private booleanisTerminal(Statement statement, IType returnType)private booleanisThisPointer(Expression expr)booleanisThrowParseResultsExceptionForWarnings()private booleanisTypeParameterErrorMsg(Expression expr, java.util.List<IParseIssue> exceptions)private booleanisTypeParamHeaderCompiling(IType typeParam)private booleanisUnexpectedToken(Statement statement)private booleanisValidAnnotationMethodReturnType(IType returnType)java.util.Iterator<FunctionType>iterateParsingFunctions()private MethodScoremakeDynamicMethodScore(java.util.List<? extends IInvocableType> listFunctionTypes, java.util.List<Expression> argExpressions)private DynamicPropertySymbolmakeGetter(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, boolean bOldSyntax)(package private) DynamicPropertySymbolmakeProperties(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.String strPropertyName, IType varType, ModifierInfo modifiers, boolean bGetter, boolean bSetter)private DynamicPropertySymbolmakeSetter(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, DynamicPropertySymbol dps, boolean bOldSyntax)private voidmakeTypeParameterListClause(int iOffset, int iLineNum, int iColumn, java.util.List<TypeLiteral> paramTypes)private TypeVarToTypeMapmaskCurrentFunctionTypeVarsFromPriorInference()private java.lang.StringmatchAssignmentOperator()private booleanmatchNonDeclarationKeyword()(package private) booleanmatchPrimitiveType(boolean bSuperThis)private booleanmatchRightShift()private java.lang.StringmatchRightShiftAssign()private java.util.List<IFunctionSymbol>maybeAddPrivateFunctionsIfSuperInSamePackage(java.lang.String name, java.util.List<IFunctionSymbol> functions)(package private) booleanmaybeAdvanceTokenizerToEndOfSavedLocation()private java.util.List<? extends IInvocableType>maybeAvoidNestedMethodScoring(java.util.List<? extends IInvocableType> listFunctionTypes)private IInvocableTypemaybeBoundFunctionTypeVars(IInvocableType inferredFunctionType, TypeVarToTypeMap inferenceMap)private ISymbolmaybeCaptureSymbol(MethodCallExpression e, ISymbol functionSymbol)private ITypemaybeChangeToInferredType(IType declaringClass, TypeLiteral typeLiteral, MethodScore bestConst)(package private) booleanmaybeEatNonDeclKeyword(boolean bHasName, java.lang.String strFunctionName)private IPropertyInfomaybeGetProxiedPropertyInfo(java.lang.String propName, IPropertyInfo pi)private voidmaybeInferFunctionTypeVarsFromReturnType(IInvocableType invType, TypeVarToTypeMap inferenceMap)private TypeLiteralmaybeInferTypeLiteralFromContextType()private voidmaybeOpenParenIsForParenthesizedExpr(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark, int iLocationsCount)private IFunctionTypemaybeParameterizeOnCtxType(IFunctionType funcType)private voidmaybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr(java.lang.String[] t, int iOffset, int iLineNum, int iColumn, IParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol, int mark, int iLocationsCount)private voidmaybeParseImpliedStaticMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, java.lang.String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs)private booleanmaybeParseImpliedThisMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, java.lang.String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs)private voidmaybeReassignOffsetForArgumentListClause(int iArgs, java.util.List<Expression> argExpressions, int iOffset, int iLineNum, int iColumn)private voidmaybeRemoveIMonitorLockError(ParsedElement pe)private java.util.List<? extends IInvocableType>maybeRemoveNonGenericMethods(java.util.List<? extends IInvocableType> listFunctionTypes, IType[] typeParams)private booleanmaybeReparseWithoutContextType(int mark, int iLocationsCount, Expression initializerExpression)private booleanmaybeReplaceErrantPackageExprWithEnumConstEpr(int iOffset, int iLineNum, int iColumn, Expression expr)private voidmaybeReplacePackageExprWithTypeLiteral(int iOffset, int iLineNum, int iColumn, Expression expr)private ITypemaybeResolveFunctionTypeVars(IDynamicFunctionSymbol dfs, IType type)private voidmaybeSetExternalSymbols()private java.lang.StringmaybeStripTypeModifier(java.lang.String strValue, IType numericTypeFrom)private voidmaybeVerifyDoubleLiteral(IExpression oneSide, IExpression otherSide)private voidmaybeVerifyDoubleLiterals(Expression e)protected voidnewDfsDeclInSetByName()intnextIndexOfErrantDuplicateDynamicSymbol(IDynamicSymbol ds, java.util.Collection<? extends ISymbol> symbols, boolean bCheckContains)private java.util.ArrayList<IFunctionType>parameterizeFunctionTypes(Expression expression, IType[] typeParameters, java.util.List<IFunctionType> listFunctionTypes)(package private) voidparseAdditiveExpression()private voidparseAggregateTypeLiteral(boolean bInterface)private ITypeparseAnonymousInnerClass(IType declaringClass, TypeLiteral typeLiteral, NewExpression newExpr, int state, int mark)private intparseArgExpression(IInvocableType funcType, int iArgs, java.util.List<Expression> argExpressions, TypeVarToTypeMap inferenceMap, java.util.List<LightweightParserState> parserStates, java.util.Set<java.lang.String> namedArgs, boolean bMethodScoring)private MethodScoreparseArgumentList(IType rootType, ParsedElement element, java.util.List<? extends IInvocableType> listFunctionTypes, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)private booleanparseArrayType(TypeLiteral tl)(package private) java.util.List<Expression>parseArrayValueList(IType componentType)private voidparseAssertStatement()private voidparseAssignment(Expression e, java.lang.String assignOp)(package private) booleanparseAssignmentOrMethodCall()private ExpressionparseAssignmentRhs(java.lang.String operation, IType typeExpected, Expression lhs)(package private) FunctionStatementparseBaseFunctionDefinition(FunctionStatement functionStmt, boolean bProperty, boolean bGetter, ModifierInfo modifiers)(package private) voidparseBindableExpression()(package private) voidparseBindableExpression(boolean bPostfix)private voidparseBindableExpression(Token token)private voidparseBindableExpression(Token token, boolean bPostfix)private voidparseBindingExpression(Token token)private voidparseBindingExpression(Token token, boolean bPostfix)(package private) voidparseBitshiftExpression()(package private) voidparseBitwiseAndExpression()(package private) voidparseBitwiseOrExpression()(package private) voidparseBitwiseXorExpression()private voidparseBlockExpression()(package private) voidparseBlockLiteral()private booleanparseBooleanLiteral(Token token)(package private) booleanparseCaseClause(SwitchStatement switchStmt, java.util.List<CaseClause> cases)(package private) voidparseCaseClauses(SwitchStatement switchStmt)private booleanparseCharLiteral(Token token)IGosuClassInternalparseClass(java.lang.String strQualifiedClassName, ISourceFileHandle sourceFile, boolean bThrowOnWarnings, boolean bFullyCompile)For use by code editors etc.private voidparseCollectionInitializerList(IType type)private voidparseCompoundTypeLiteralExpression(java.lang.String[] T, boolean bInterface, int iOffset, int iLineNum, int iColumn)(package private) voidparseConditionalAndExpression()(package private) voidparseConditionalExpression()(package private) voidparseConditionalOrExpression()(package private) booleanparseDefaultClause(SwitchStatement switchStmt, java.util.List<CaseClause> cases)(package private) voidparseDelegateStatement(DelegateStatement delegateStmt, java.lang.String strIdentifier)private voidparseDirective(boolean processDirectives)private NumericLiteralparseDouble(java.lang.String strValue)private NumericLiteralparseDoubleOrBigDec(java.lang.String strValue)private voidparseDoWhileStatement()private voidparseDynamicFunction(Symbol dynamcSymbol)private voidparseEqualityExpression()private voidparseErrantFeatureLiteralParameterization(FeatureLiteral fle)private voidparseEvalExpression()ExpressionparseExp(IScriptPartId partId)Parses a Gosu expression.private ExpressionparseExp(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, boolean assignRuntime)private ExpressionparseExp(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType, IFileContext context, boolean assignRuntime)ExpressionparseExp(IScriptPartId partId, IType expectedExpressionType)Parses a Gosu expression.ExpressionparseExp(IScriptPartId partId, IType expectedExpressionType, IFileContext context, boolean assignRuntime)Parses a Gosu expression.private voidparseExplicitlyTypedNumericLiteral(java.lang.String strValue, IType numericTypeFrom)IExpressionparseExpOrProgram(IScriptPartId partId)Parses a Gosu expression.IExpressionparseExpOrProgram(IScriptPartId partId, boolean isolatedScope, boolean assignRuntime)Parses a Gosu expression.IExpressionparseExpOrProgram(IScriptPartId partId, IType typeExpected, boolean isolatedScope, boolean assignRuntime)(package private) voidparseExpression()(package private) voidparseExpression(ContextType contextType)(package private) voidparseExpression(ContextType ctxType, boolean bVerify)(package private) voidparseExpressionNoVerify(ContextType ctxType)private booleanparseFeatureLiteral(Token token, Expression root)private NumericLiteralparseFloat(java.lang.String strValue)private voidparseForEachStatement()private booleanparseFunctionBody(FunctionStatement functionStmt, FunctionType type)(package private) DynamicFunctionSymbolparseFunctionDecl(ParsedElement element, boolean bProperty, boolean bGetter, ModifierInfo modifiers)(package private) DynamicFunctionSymbolparseFunctionDecl(ParsedElement element, ModifierInfo modifiers)(package private) DynamicFunctionSymbolparseFunctionDecl(ParsedElement element, java.lang.String T, boolean bProperty, boolean bGetter, ModifierInfo modifiers)(package private) booleanparseFunctionDefinition()(package private) ISymbolparseFunctionOrPropertyDeclaration(ParsedElement element)private IType[]parseFunctionParameterization(Expression e)private voidparseIdentifier(Identifier e, java.lang.String[] T)private voidparseIdentifier(java.lang.String[] T)private voidparseIdentifierOrTypeLiteralOrEnumConstant(java.lang.String[] T, int iOffset, int iLineNum, int iColumn)private voidparseIfStatement()private voidparseIndexVar(ForEachStatement forEachStmt)private voidparseIndirectMemberAccess(int iOffset, int iLineNum, int iColumn)private voidparseIndirectMemberAccess(int iOffset, int iLineNum, int iColumn, boolean bParsingTypeLiteralOnly)private booleanparseInitializerAssignment(IType objectType)private voidparseInitializerIdentifier(IType objectType)(package private) voidparseIntervalExpression()private NumericLiteralparseIntOrLongOrBigInt(java.lang.String strValue)private voidparseIteratorVar(ForEachStatement forEachStmt, IType type)(package private) voidparseLiteral(Token token)private java.util.List<IGosuAnnotation>parseLocalAnnotations(java.util.List<IGosuAnnotation> annotations)(package private) voidparseLocalVarStatement(VarStatement varStmt)(package private) booleanparseLoopStatement()private voidparseMapInitializerList(ContextType type)private voidparseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly)private voidparseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty)private voidparseMethodCall(java.lang.String[] t, int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol, int markBeforeTypeArgs, int iLocBeforeTypeArgs, int markAfterTypeArgs)private voidparseMethodCall(java.lang.String[] t, IParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol)private voidparseMethodMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart, int mark)private voidparseMethodMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart)(package private) voidparseMultiplicativeExpression()private intparseNamedParamExpression(IInvocableType invType, boolean bMethodScoring)private voidparseNamedParamIdentifier()(package private) booleanparseNameOrMethodCall(Token token)private voidparseNamespaceStartOrRelativeType(java.lang.String[] T, boolean bInterface)(package private) voidparseNamespaceStatement()(package private) voidparseNamespaceStatement_editor()(package private) voidparseNamespaceStatement_normal()(package private) voidparseNewExpression()new-expression new <type-expression> ( [<argument-list>] ) { [<initialization-expression>] } new <type-expression> [ <expression> ] new <type-expression> [] { [<array-value-list>] }(package private) voidparseNewExpressionOrAnnotation(boolean bAnnotation)(package private) voidparseNewExpressionOrAnnotation(IType declaringClass, boolean bAnnotation, boolean bNoArgNoParenthesis, TypeLiteral typeLiteral, int mark)private booleanparseNullLiteral(Token token)private booleanparseNumberLiteral(Token token)private booleanparseNumberLiteral(Token token, boolean negated)private voidparseNumericValue(java.lang.String strValue)private booleanparseObjectInitializer(IType objectType)java.util.ArrayList<ISymbol>parseParameterDeclarationList(IParsedElement element, boolean bStatic, java.util.List<IType> inferredArgumentTypes)java.util.ArrayList<ISymbol>parseParameterDeclarationList(IParsedElement element, boolean bStatic, java.util.List<IType> inferredArgumentTypes, boolean bProperty, boolean bGetter, boolean bEmpty, boolean bVarDynamicArg)(package private) booleanparseParameterType(IType boundingType)private voidparsePlainFunction(IFunctionSymbol functionSymbol)private IType[]parsePossibleFunctionParameterization(java.lang.String name, MethodCallExpression e)private voidparsePostfixNumericLiteral(java.lang.String num, IType numericTypeFrom, int radix)private booleanparsePostfixUnitBindingExpression(Token priorToken, java.lang.String connectorString)private voidparsePrefixNumericLiteral(java.lang.String strValue, IType numericTypeFrom)private booleanparsePrefixUnitBindingExpression(Token priorToken, java.lang.String connectorString)(package private) voidparsePrimaryExpression()IProgramparseProgram(IScriptPartId partId)IProgramparseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime)IProgramparseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException)IProgramparseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException, IType superType)IProgramparseProgram(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType)IProgramparseProgram(IScriptPartId partId, IType expectedExpressionType)IProgramparseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime)IProgramparseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException)(package private) java.util.List<IClasspathStatement>parseProgramClasspathStatements()(package private) FunctionStatementparseProgramEntryPointBody()private voidparseProgramExpr()private booleanparseProgramFunctionBody(FunctionType type)(package private) java.util.List<ITypeLoaderStatement>parseProgramTypeLoaderStatements()(package private) booleanparsePropertyDefinition()private voidparsePropertyMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, IType rootType, boolean bExpansion)(package private) voidparseRelationalExpression()private booleanparseRelativeFeatureLiteral(Token token)private voidparseReturnStatement()private booleanparseStandAloneDataStructureInitialization(Token token)private booleanparseStandAloneDataStructureInitialization(Token token, boolean bAvoidContextType, boolean bBacktracking)(package private) booleanparseStatement()(package private) booleanparseStatement(boolean bAsStmtBlock)(package private) booleanparseStatement(boolean forceKeepStmtBlock, boolean bAsStmtBlock)private voidparseStatementBlock()private voidparseStatementBlock(boolean bMatchClosingBrace)private voidparseStatementBlock(boolean forceKeepStmtBlock, boolean bMatchClosingBrace)StatementparseStatements(IScriptPartId partId)Parses a set of Gosu statements.private StatementparseStatements(IScriptPartId partId, boolean verify, boolean isolatedScope)(package private) voidparseStatementsAndDetectUnreachable(java.util.List<Statement> statements)private booleanparseStringLiteral(Token token)private booleanparseStringLiteralSeparately()private voidparseSwitchStatement()private TemplateStringLiteralparseTemplatizedStringLiteral(Token t)private voidparseThrowStatement()private voidparseTryCatchFinallyStatement()(package private) voidparseTypeAsExpression()booleanparseTypeLiteral()Consumes a type literal from the current tokenizer, if one exists.(package private) booleanparseTypeLiteral(boolean bInterface)booleanparseTypeLiteral(Token token)(package private) booleanparseTypeLiteral(Token token, boolean bInterface)TypeLiteralparseTypeLiteral(IScriptPartId partId)Parses a type literal expression.(package private) voidparseTypeLiteral(java.lang.String[] T, boolean bIgnoreArrayBrackets, boolean bInterface, int iOffset, int iLineNum, int iColumn)(package private) voidparseTypeLiteralForNewExpression()(package private) java.util.List<TypeLiteral>parseTypeParameters(IType enclosingType)(package private) voidparseTypeVariableDefinition(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass)(package private) java.util.List<ITypeVariableDefinitionExpression>parseTypeVariableDefList(ParsedElement parsedElem, boolean bForFunction, java.util.List<TypeVariableDefinitionImpl> typeVarDefListFromDecl)(package private) java.util.List<ITypeVariableDefinitionExpression>parseTypeVariableDefs(ParsedElement parsedElem, boolean bFunction, java.util.List<TypeVariableDefinitionImpl> typeVarDefListFromDecl)(package private) voidparseUnaryExpression()(package private) voidparseUnaryExpressionNotPlusMinus()private booleanparseUnitExpression()private booleanparseUnitExpressionFactor(Token token)private MemberAccessparseUnqualifiedEnumConstant(java.lang.String strConstValue)(package private) voidparseUsesStatement()(package private) voidparseUsesStatement(boolean bResolveTypes)UsesStatementListparseUsesStatementList(boolean bResolveUsesTypes)private voidparseUsingStatement()private voidparseVariance(ParsedElement parsedElem, TypeVariableDefinition typeVarDef)(package private) DynamicPropertySymbolparseVarPropertyClause(VarStatement varStmt, ModifierInfo modifiers, java.lang.String strVarIdentifier, IType varType, boolean parseInitializer)(package private) voidparseVarStatement(VarStatement varStmt, Token idToken, boolean bClassMember)private voidparseVarStatementsInUsingStatement(UsingStatement usingStmt)private voidparseWhileStatement()private booleanparsingFunctionsEncloseMyClass()protected DynamicFunctionSymbolpeekDynamicFunctionSymbol()protected ExpressionpeekExpression()ParseTreepeekLocation()protected ParsedElementpeekParsedElement()VarStatementpeekParsingFieldInitializer()FunctionTypepeekParsingFunction()(package private) ProgrampeekParsingProgram()protected StatementpeekStatement()protected DynamicFunctionSymbolpopDynamicFunctionSymbol()ExpressionpopExpression()voidpopIgnoreTypeDeprecation()(package private) voidpopInferenceMap(TypeVarToTypeMap inferenceMap)voidpopInferredContextTypes()voidpopParsingAbstractConstructor()(package private) VarStatementpopParsingFieldInitializer()(package private) FunctionTypepopParsingFunction()voidpopParsingStaticMember()(package private) voidpopScriptPart(IScriptPartId partId)protected StatementpopStatement()private StatementpopStatementAndDetectUnreachable(Statement previousStatement, java.util.List<Statement> statements)private ISymbolpossiblyResolveFunctionSymbol(MethodCallExpression e, java.lang.String strFunction)private voidprocessUsesStatement(UsesStatement usesStmt, TypeLiteral typeLiteral, IFeatureInfo fi, IGosuClass gsType)private voidprocessUsesStatementFeatureLiteral(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral, FeatureLiteral fl)private voidprocessUsesStatementTypeLiteral(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral)private booleanpropertyTypeDiffers(DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)protected voidpushDynamicFunctionSymbol(DynamicFunctionSymbol stmt)private voidpushErrorNumberLiteral(ResourceKey key, java.lang.Object... args)protected voidpushExpression(Expression e)voidpushIgnoreTypeDeprecation()voidpushInferenceMap(TypeVarToTypeMap inferenceMap)voidpushInferredContextTypes(ContextType ctxType)voidpushParsingAbstractConstructor(java.lang.Boolean bParsingAbstractConstructor)(package private) voidpushParsingFieldInitializer(VarStatement VarStatement)(package private) voidpushParsingFunction(FunctionType functionType)voidpushParsingStaticMember(java.lang.Boolean bParsingStaticFeature)voidpushScriptPart(IScriptPartId partId)protected voidpushStatement(Statement stmt)protected voidpushTypeVariableTypesToInfer(IInvocableType functionType)voidputDfsDeclInSetByName(IDynamicFunctionSymbol dfs)voidputDfsDeclsInTable(ISymbolTable table)private voidputThisAndSuperSymbols(ModifierInfo modifiers)private booleanrecoverFromJavaStyleCast(Expression eas)private voidremoveInnerClasses(IParsedElement e)private voidremoveLocation(ParseTree location)(package private) voidremoveLocationsFrom(int iLocationsCount)private MethodScorereparseArguments(MethodScore bestScore, java.util.List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)private booleanreparseErrorsAreDifferent(TypeVarToTypeMap inferenceMap, java.util.List<Expression> argExpressions)private MethodScorereparseWithCorrectFunctionAndGtfo(MethodScore bestScore, boolean bShouldScoreMethods, java.util.List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)private voidreset()voidresetScript()private booleanresolveArrayOrParameterizationPartOfTypeLiteral(java.lang.String[] T, boolean bIgnoreArrayBrackets, TypeLiteral e)private ITyperesolveTypeByRelativeName(java.lang.String strTypeName)TypeLiteralresolveTypeLiteral(java.lang.String strTypeName)Resolves the type literal given by strTypeName.protected TypeLiteralresolveTypeLiteral(java.lang.String[] T)protected TypeLiteralresolveTypeLiteral(java.lang.String[] T, boolean bRelative, boolean bInterface)TypeLiteralresolveTypeLiteral(java.lang.String strTypeName, boolean bRelative, boolean bInterface)private ITyperesolveTypeName(java.lang.String strTypeName, boolean bRelative)private booleanreturnTypesCompatible(DynamicFunctionSymbol dfsExisting, DynamicFunctionSymbol dfs)private MethodScorescoreMethod(IType callsiteEnclosingType, IType rootType, IInvocableType funcType, java.util.List<? extends IInvocableType> listFunctionTypes, java.util.List<Expression> argExpressions, boolean bSimple, boolean bLookInCache)private voidscrubAnnotationConstructors(IType declaringClass, java.util.List<IConstructorType> listConstructorTypes)voidsetAllowWildcards(boolean allowWildcards)voidsetCaptureSymbolsForEval(boolean bCaputreSymbolsForEval)voidsetContextInferenceManager(ContextInferenceManager ctxInferenceMgr)voidsetDfsDeclInSetByName(java.util.Map<java.lang.String,java.util.List<IFunctionSymbol>> dfsDecl)voidsetEditorParser(boolean bStudioEditorParser)(package private) static voidsetFromTargetModifier(IGosuAnnotation anno, ModifierInfo modifierInfo)voidsetGenerateRootExpressionAccessForProgram(boolean bGenRootExprAccess)voidsetLocationsFromProgramClassParser(java.util.List<ParseTree> savedLocations)(package private) voidsetNamespace(java.lang.String strNamespace)private voidsetOperatorLineNumber(Expression expression, int operatorLineNumber)protected voidsetParsed(boolean bParsed)voidsetParsingAnnotation(boolean parsingAnnotation)private voidsetParsingTypeLiteralForNewExpression(boolean value)private voidsetReturnNullExpr(ReturnStatement returnStmt, boolean bProgramCallFunction)voidsetScript(ISource src)Set the script or expression to parse and execute.voidsetScript(SourceCodeReader reader)Set the script or expression to parse and execute.voidsetScript(java.lang.CharSequence source)Set the script or expression to parse and execute.voidsetSymbolTable(ISymbolTable symTable)Sets the parser's symbol table.voidsetThrowParseExceptionForWarnings(boolean bThrowParseExceptionForWarnings)voidsetTokenizer(ISourceCodeTokenizer tokenizer)voidsetTokenizerInstructor(ITokenizerInstructor tokenizerInstructor)voidsetTypeUsesMap(ITypeUsesMap typeUsesMap)Set the type uses map.protected voidsetTypeVariables(java.util.HashMap<java.lang.String,ITypeVariableDefinition> map)voidsetValidator(IGosuValidator validator)voidsetWarnOnCaseIssue(boolean warnOnCaseIssue)private booleanshouldParseMemberInstead(java.lang.String strMemberName, IType rootType, IType memberType)private booleanshouldThisExpressionAvoidTheContextType()private booleanstaticRefToNonStaticFunc(java.lang.String stFunction, Expression[] eArgs)private booleanstaticRefToNonStaticProp(java.lang.String name)private java.lang.StringstripPrefix(java.lang.String strValue)private booleansupportPropertyAccessAsGetterCall(java.lang.String[] t, java.lang.String strFunction, IFunctionSymbol function)private booleansupportsInitializer(IType type)private booleansymbolIn(IDynamicSymbol ds, java.util.Collection<? extends ISymbol> symbols)java.lang.StringtoString()private voidtransferModifierInfo(ParsedElement stmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, EnhancementDynamicFunctionSymbol dfs)private voidtransferModifierInfo(VarStatement varStmt, ModifierInfo modifiers, AnnotationUseSiteTarget target, DynamicFunctionSymbol dfs)private booleantryPostfixUnitExpr(int mark, int locationsCount, Expression lhsExpr, Token priorToken, java.lang.String connectorString, boolean testConnector)private voidtryToMakeTypeLiteral(java.lang.String[] T, int iOffset, int iLineNum, int iColumn, java.lang.String name, Expression errantExpression)booleantypeVarExists(java.util.Map<java.lang.String,ITypeVariableDefinition> typeVarMap, TypeVariableDefinition typeVarDef)private ITypeunitExprType(Expression unitExpr)private ITypeuseDynamicTypeIfDynamicRoot(IInvocableType funcType, IType ctxType)private voidverifyArgCount(ParsedElement element, int iArgs, IConstructorType ctorType)private voidverifyArgCount(ParsedElement element, int iArgs, IFunctionType funcType)private voidverifyArgTypes(IType[] argTypes, java.util.List<Expression> argExpressions, java.util.List<LightweightParserState> parserStates)private voidverifyCanConstructInnerClassFromCallSite(NewExpression e, IType innerClass)private booleanverifyCanParameterizeType(ParsedElement elem, IType type, IType[] typeParam)private voidverifyCase(ParsedElement element, java.lang.String foundName, java.lang.String actualName, IParserState state, ResourceKey errorKey, boolean isEndsWithMatchOK)private voidverifyCase(ParsedElement element, java.lang.String foundName, java.lang.String actualName, ResourceKey errorKey, boolean isEndsWithMatchOK)private voidverifyCaseIsUnique(Expression e, java.util.List<CaseClause> cases)private voidverifyCoercionSymmetry(EqualityExpression e, Expression lhs, Expression rhs)private ExpressionverifyConditionalTypes(Expression lhs, Expression rhs)private voidverifyConstructorIsAccessible(IType instanceClass, NewExpression e, IConstructorType constructorType, boolean bAnonymous)private voidverifyFunction(DynamicFunctionSymbol dfs, ParsedElement element)(package private) voidverifyFunctionConflictsWithPropoertySetter(ParsedElement element, DynamicFunctionSymbol dfs, DynamicPropertySymbol dps)private voidverifyLoopConditionNotAlwaysFalse(Expression e)private voidverifyNoImplicitPropertyMethodConflicts(ParsedElement element, DynamicFunctionSymbol dfs)private voidverifyNotCallingOverridableFunctionFromCtor(BeanMethodCallExpression mce)private voidverifyNotCallingOverridableFunctionFromCtor(MethodCallExpression mce)private voidverifyNotWeakerAccess(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)private voidverifyOverrideNotOnMethodThatDoesNotExtend(ParsedElement element, DynamicFunctionSymbol dfs)(package private) voidverifyPropertySetterConflictsWithFunction(ParsedElement element, DynamicFunctionSymbol dfs, java.lang.String propName, DynamicFunctionSymbol existingDfs)private voidverifyPropertyWritable(IType classRoot, java.lang.String strProperty, boolean bFromObjInitializer)private voidverifyReified(boolean bValidOverrideFound, ParsedElement element, DynamicFunctionSymbol dfs)private voidverifyReifiedCallHasProperContext(BeanMethodCallExpression e)private voidverifyReifiedCallHasProperContext(MemberAccess e)private voidverifyReifiedCallHasProperContext(MethodCallExpression e)private voidverifyReifiedCallHasProperContext(PropertyAccessIdentifier e, DynamicPropertySymbol dps)private voidverifyRelationalOperandsComparable(BinaryExpression expr)private voidverifySameNumberOfFunctionTypeVars(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)private voidverifySuperAccess(Expression rootExpression, Expression memberExpr, IAttributedFeatureInfo feature, java.lang.String strMemberName)private ITypeverifySuperTypeIsDeclaredInCompilingClass(TypeLiteral superTypeLiteral)private voidverifyTypeAccessible(TypeLiteral expr, IType type)private voidverifyTypeForUsingStatementPredicate(ParsedElement pe, IType type)private ExpressionverifyWithComparableDimension(Expression rhs, IType lhsType)private voidwarnIfCaseNotTerminated(java.util.List<Statement> statements)private voidwarnOnSuspiciousEqualsOperator(EqualityExpression e)private ExpressionwrapExpressionIfNeeded(Expression first, Expression second)private ReturnStatementwrapProgramExpressionInReturnStmt(Expression e)-
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 Detail
-
PENDING_BOUNDING_TYPE
public static final IType PENDING_BOUNDING_TYPE
-
notfound
public static ErrorType notfound
-
_tokenizer
private SourceCodeTokenizer _tokenizer
-
_symTable
private ISymbolTable _symTable
-
_bParsed
private boolean _bParsed
-
_stack
private Stack<ParsedElement> _stack
-
_stackDFS
private Stack<DynamicFunctionSymbol> _stackDFS
-
_locations
private java.util.List<ParseTree> _locations
-
_parsingProgram
private Program _parsingProgram
-
_parsingFunctions
private java.util.ArrayList<FunctionType> _parsingFunctions
-
_parsingNewExpressionTypeLiteral
private boolean _parsingNewExpressionTypeLiteral
-
_parsingFieldInitializer
private java.util.ArrayList<VarStatement> _parsingFieldInitializer
-
_dfsDeclByName
private java.util.Map<java.lang.String,java.util.List<IFunctionSymbol>> _dfsDeclByName
-
_typeUsesMap
private ITypeUsesMap _typeUsesMap
-
_strNamespace
private java.lang.String _strNamespace
-
_tokenizerInstructor
private ITokenizerInstructor _tokenizerInstructor
-
_scriptabilityConstraint
private IScriptabilityModifier _scriptabilityConstraint
-
_iBreakOk
private int _iBreakOk
-
_iContinueOk
private int _iContinueOk
-
_iReturnOk
int _iReturnOk
-
_scriptPartIdStack
private Stack<IScriptPartId> _scriptPartIdStack
-
_inferenceMapStack
private Stack<TypeVarToTypeMap> _inferenceMapStack
-
_typeVarsByName
private java.util.HashMap<java.lang.String,ITypeVariableDefinition> _typeVarsByName
-
_inferredContextStack
private Stack<ContextType> _inferredContextStack
-
_bThrowForWarnings
private boolean _bThrowForWarnings
-
_bStudioEditorParser
private boolean _bStudioEditorParser
-
_bWarnOnCaseIssue
private boolean _bWarnOnCaseIssue
-
_parsingAbstractConstructor
private Stack<java.lang.Boolean> _parsingAbstractConstructor
-
_ctxInferenceMgr
private ContextInferenceManager _ctxInferenceMgr
-
_parsingStaticFeature
private Stack<java.lang.Boolean> _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
private java.util.Map<java.lang.String,IType> _typeCache
-
_iStmtDepth
private int _iStmtDepth
-
_savedLocations
private java.util.List<ParseTree> _savedLocations
-
_bAreUsingStatementsAllowedInStatementLists
private java.lang.Boolean _bAreUsingStatementsAllowedInStatementLists
-
BINDER_ASSIGNABILITY_CACHE
private static final Cache<Pair<java.lang.String,java.lang.String>,java.lang.Boolean> BINDER_ASSIGNABILITY_CACHE
-
METHOD_PREFIX_LIST
private static final java.lang.String[] 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
private static final java.lang.String[] METHOD_PREFIX_LIST_WITH_SETTER
-
-
Constructor Detail
-
GosuParser
GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint)
-
GosuParser
GosuParser(ISymbolTable symTable, IScriptabilityModifier scriptabilityConstraint, ITypeUsesMap tuMap)
-
-
Method Detail
-
setValidator
public void setValidator(IGosuValidator validator)
- Specified by:
setValidatorin interfaceIParserPart- Overrides:
setValidatorin classParserBase
-
getScriptPart
public IScriptPartId getScriptPart()
Description copied from interface:IGosuParserThe context associated with the parser's script. E.g., a file name, a library, a rule, etc.- Specified by:
getScriptPartin interfaceIGosuParser
-
getScriptPartIdStack
public Stack<IScriptPartId> getScriptPartIdStack()
-
pushScriptPart
public void pushScriptPart(IScriptPartId partId)
-
popScriptPart
void popScriptPart(IScriptPartId partId)
-
getInferenceMap
public TypeVarToTypeMap getInferenceMap()
-
pushInferenceMap
public void pushInferenceMap(TypeVarToTypeMap inferenceMap)
-
popInferenceMap
void popInferenceMap(TypeVarToTypeMap inferenceMap)
-
setScript
public void setScript(java.lang.CharSequence source)
Description copied from interface:IGosuParserSet the script or expression to parse and execute.- Specified by:
setScriptin interfaceIGosuParser- Parameters:
source- The rule (Gosu) source to parse/execute.
-
setScript
public void setScript(ISource src)
Description copied from interface:IGosuParserSet the script or expression to parse and execute.- Specified by:
setScriptin interfaceIGosuParser- Parameters:
src- A reader for the rule (Gosu) source to parse/execute.
-
setScript
public void setScript(SourceCodeReader reader)
Description copied from interface:IGosuParserSet the script or expression to parse and execute.- Specified by:
setScriptin interfaceIGosuParser- Parameters:
reader- A reader for the rule (Gosu) source to parse/execute.
-
resetScript
public void resetScript()
-
reset
private void reset()
-
getScript
protected java.lang.String getScript()
- Specified by:
getScriptin classParserBase
-
getSymbolTable
public ISymbolTable getSymbolTable()
Description copied from interface:IGosuParserReturns the parser's symbol table.- Specified by:
getSymbolTablein interfaceIGosuParser- Overrides:
getSymbolTablein classParserBase
-
setSymbolTable
public void setSymbolTable(ISymbolTable symTable)
Description copied from interface:IGosuParserSets the parser's symbol table.- Specified by:
setSymbolTablein interfaceIGosuParser- Parameters:
symTable- The symbol table the parser will use when parsing and executing rules.
-
getTypeUsesMap
public ITypeUsesMap getTypeUsesMap()
Description copied from interface:IGosuParserGet the type uses map.- Specified by:
getTypeUsesMapin interfaceIGosuParser
-
setTypeUsesMap
public void setTypeUsesMap(ITypeUsesMap typeUsesMap)
Description copied from interface:IGosuParserSet the type uses map.- Specified by:
setTypeUsesMapin interfaceIGosuParser
-
getNamespace
public java.lang.String getNamespace()
-
setNamespace
void setNamespace(java.lang.String strNamespace)
-
getVisibilityConstraint
public IScriptabilityModifier getVisibilityConstraint()
-
getTokenizerInstructor
public ITokenizerInstructor getTokenizerInstructor()
Description copied from interface:IGosuParserThe TokenizerInstructor to use for this parser. Optional.- Specified by:
getTokenizerInstructorin interfaceIGosuParser
-
setTokenizerInstructor
public void setTokenizerInstructor(ITokenizerInstructor tokenizerInstructor)
- Specified by:
setTokenizerInstructorin interfaceIGosuParser
-
peekParsingFunction
public FunctionType peekParsingFunction()
-
iterateParsingFunctions
public java.util.Iterator<FunctionType> iterateParsingFunctions()
-
popParsingFunction
FunctionType popParsingFunction()
-
pushParsingFunction
void pushParsingFunction(FunctionType functionType)
-
isParsingFunction
public boolean isParsingFunction()
- Specified by:
isParsingFunctionin interfaceIGosuParser
-
isParsingTypeListeralForNewExpression
private boolean isParsingTypeListeralForNewExpression()
-
setParsingTypeLiteralForNewExpression
private void setParsingTypeLiteralForNewExpression(boolean value)
-
peekParsingFieldInitializer
public VarStatement peekParsingFieldInitializer()
-
popParsingFieldInitializer
VarStatement popParsingFieldInitializer()
-
pushParsingFieldInitializer
void pushParsingFieldInitializer(VarStatement VarStatement)
-
isParsingFieldInitializer
public boolean isParsingFieldInitializer()
-
peekParsingProgram
Program peekParsingProgram()
-
isParsingProgram
boolean isParsingProgram()
-
parseStatements
public Statement parseStatements(IScriptPartId partId) throws ParseResultsException
Description copied from interface:IGosuParserParses a set of Gosu statements. To execute all of the Statements at once call Statement.execute().- Specified by:
parseStatementsin 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
void parseStatementsAndDetectUnreachable(java.util.List<Statement> statements)
-
popStatementAndDetectUnreachable
private Statement popStatementAndDetectUnreachable(Statement previousStatement, java.util.List<Statement> statements)
-
isUnexpectedToken
private boolean isUnexpectedToken(Statement statement)
-
parseProgram
public IProgram parseProgram(IScriptPartId partId) throws ParseResultsException
- Specified by:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType) throws ParseResultsException
- Specified by:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) throws ParseResultsException
- Specified by:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime, boolean bDoNotThrowParseResultsException) throws ParseResultsException
- Specified by:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, IType expectedExpressionType) throws ParseResultsException
- Specified by:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
parseProgram
public IProgram parseProgram(IScriptPartId partId, boolean isolatedScope, boolean reallyIsolatedScope, IType expectedExpressionType, IFileContext ctx, boolean assignRuntime) throws ParseResultsException
- Specified by:
parseProgramin 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:
parseProgramin 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:
parseProgramin interfaceIGosuParser- Throws:
ParseResultsException
-
setGenerateRootExpressionAccessForProgram
public void setGenerateRootExpressionAccessForProgram(boolean bGenRootExprAccess)
- Specified by:
setGenerateRootExpressionAccessForProgramin 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
java.util.List<IClasspathStatement> parseProgramClasspathStatements()
-
parseProgramTypeLoaderStatements
java.util.List<ITypeLoaderStatement> parseProgramTypeLoaderStatements()
-
parseExp
public Expression parseExp(IScriptPartId partId) throws ParseResultsException
Description copied from interface:IGosuParserParses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExpin 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:IGosuParserParses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExpin 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:IGosuParserParses a Gosu expression. To evaluate the Expression simply call Expression.evaluate().- Specified by:
parseExpin 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
public IExpression parseExpOrProgram(IScriptPartId partId) throws ParseResultsException
Description copied from interface:IGosuParserParses 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:
parseExpOrProgramin 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:IGosuParserParses 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:
parseExpOrProgramin 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
public TypeLiteral parseTypeLiteral(IScriptPartId partId) throws ParseResultsException
Description copied from interface:IGosuParserParses a type literal expression. The source must obviously satisfy the type literal syntax.- Specified by:
parseTypeLiteralin interfaceIGosuParser- Throws:
ParseResultsException
-
isParsed
public boolean isParsed()
- Specified by:
isParsedin interfaceIGosuParser- Returns:
- Whether or not the referenced Gosu source has been parsed.
-
setParsed
protected void setParsed(boolean bParsed)
-
getTokenizer
public final SourceCodeTokenizer getTokenizer()
- Specified by:
getTokenizerin interfaceIGosuParser- Overrides:
getTokenizerin classParserBase
-
getLocationsList
java.util.List<ParseTree> getLocationsList()
- Overrides:
getLocationsListin classParserBase
-
getLocations
public java.util.List<IParseTree> getLocations()
- Specified by:
getLocationsin interfaceIGosuParser- Returns:
- All the locations corresponding to parsed elements.
-
peekLocation
public ParseTree peekLocation()
-
hasWarnings
public boolean hasWarnings()
- Specified by:
hasWarningsin interfaceIGosuParser- Returns:
- Did the most recent parse have warnings
-
isThrowParseResultsExceptionForWarnings
public boolean isThrowParseResultsExceptionForWarnings()
- Specified by:
isThrowParseResultsExceptionForWarningsin interfaceIGosuParser
-
setThrowParseExceptionForWarnings
public void setThrowParseExceptionForWarnings(boolean bThrowParseExceptionForWarnings)
- Specified by:
setThrowParseExceptionForWarningsin interfaceIGosuParser
-
parseExpression
void parseExpression()
-
parseExpression
void parseExpression(ContextType contextType)
-
parseExpression
void parseExpression(ContextType ctxType, boolean bVerify)
-
parseExpressionNoVerify
void parseExpressionNoVerify(ContextType ctxType)
-
setContextInferenceManager
public void setContextInferenceManager(ContextInferenceManager ctxInferenceMgr)
-
pushInferredContextTypes
public void pushInferredContextTypes(ContextType ctxType)
-
popInferredContextTypes
public void popInferredContextTypes()
-
getContextType
public ContextType getContextType()
-
convertNullLiterals
private void convertNullLiterals(IType contextType)
-
convertNumberLiteralsToContextType
private void convertNumberLiteralsToContextType(IType contextType)
-
parseConditionalExpression
void parseConditionalExpression()
-
_parseConditionalExpression
void _parseConditionalExpression()
-
isPrimitiveOrBoxedOrBigIntegerOrBigDecimal
private boolean isPrimitiveOrBoxedOrBigIntegerOrBigDecimal(IType type)
-
findLeastUpperBoundWithCoercions
private IType findLeastUpperBoundWithCoercions(ConditionalTernaryExpression cte, Expression first, Expression second)
-
canCoerceFromString
private boolean canCoerceFromString(Expression first, Expression second)
-
wrapExpressionIfNeeded
private Expression wrapExpressionIfNeeded(Expression first, Expression second)
-
parseConditionalOrExpression
void parseConditionalOrExpression()
-
parseConditionalAndExpression
void parseConditionalAndExpression()
-
parseBitwiseOrExpression
void parseBitwiseOrExpression()
-
ensureOperandIntOrLongOrBoolean
private Expression ensureOperandIntOrLongOrBoolean(Expression op)
-
isPrimitiveOrBoxedIntegerType
private boolean isPrimitiveOrBoxedIntegerType(IType type)
-
ensureOperandBoolean
private Expression ensureOperandBoolean(Expression op)
-
ensureOperandIntOrLong
private Expression ensureOperandIntOrLong(Expression op)
-
parseBitwiseXorExpression
void parseBitwiseXorExpression()
-
parseBitwiseAndExpression
void parseBitwiseAndExpression()
-
parseEqualityExpression
private void parseEqualityExpression()
-
isConditional
private boolean isConditional(IExpression expression)
-
_parseEqualityExpression
private void _parseEqualityExpression()
-
warnOnSuspiciousEqualsOperator
private void warnOnSuspiciousEqualsOperator(EqualityExpression e)
-
isThisPointer
private boolean isThisPointer(Expression expr)
-
isEqualsArgReference
private boolean isEqualsArgReference(Expression expr)
-
verifyCoercionSymmetry
private void verifyCoercionSymmetry(EqualityExpression e, Expression lhs, Expression rhs)
-
verifyRelationalOperandsComparable
private void verifyRelationalOperandsComparable(BinaryExpression expr)
-
verifyConditionalTypes
private Expression verifyConditionalTypes(Expression lhs, Expression rhs)
-
verifyWithComparableDimension
private Expression verifyWithComparableDimension(Expression rhs, IType lhsType)
-
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
private boolean checkComparableAndCastable(Expression lhs, Expression rhs)
-
parseUnaryExpression
void parseUnaryExpression()
-
parseUnaryExpressionNotPlusMinus
void parseUnaryExpressionNotPlusMinus()
-
checkMemberAccessIsReadable
private void checkMemberAccessIsReadable()
-
_parseUnaryExpressionNotPlusMinus
void _parseUnaryExpressionNotPlusMinus()
-
parseEvalExpression
private void parseEvalExpression()
-
isCaptureSymbolsForEval
public boolean isCaptureSymbolsForEval()
- Specified by:
isCaptureSymbolsForEvalin interfaceIGosuParser
-
setCaptureSymbolsForEval
public void setCaptureSymbolsForEval(boolean bCaputreSymbolsForEval)
- Specified by:
setCaptureSymbolsForEvalin interfaceIGosuParser
-
parsePrimaryExpression
void parsePrimaryExpression()
-
_parsePrimaryExpression
boolean _parsePrimaryExpression(Token token)
-
parseBindableExpression
void parseBindableExpression()
-
parseBindableExpression
void parseBindableExpression(boolean bPostfix)
-
parseBindableExpression
private void parseBindableExpression(Token token)
-
parseBindableExpression
private void parseBindableExpression(Token token, boolean bPostfix)
-
parseBindingExpression
private void parseBindingExpression(Token token)
-
parseBindingExpression
private void parseBindingExpression(Token token, boolean bPostfix)
-
hasMethod_Cached
private static boolean hasMethod_Cached(IType type, java.lang.String method)
-
parsePrefixUnitBindingExpression
private boolean parsePrefixUnitBindingExpression(Token priorToken, java.lang.String connectorString)
-
unitExprType
private IType unitExprType(Expression unitExpr)
-
backtrackBinderExpr
private Expression backtrackBinderExpr(int locationsCount, Expression primExpr)
-
parsePostfixUnitBindingExpression
private boolean parsePostfixUnitBindingExpression(Token priorToken, java.lang.String connectorString)
-
tryPostfixUnitExpr
private boolean tryPostfixUnitExpr(int mark, int locationsCount, Expression lhsExpr, Token priorToken, java.lang.String connectorString, boolean testConnector)
-
isConnectorStringValid
private boolean isConnectorStringValid(boolean bPostfix, java.lang.String connectorString, Expression unitExpr, IType unitBinderType)
-
parseUnitExpression
private boolean parseUnitExpression()
-
parseUnitExpressionFactor
private boolean parseUnitExpressionFactor(Token token)
-
hasMethod
private static boolean hasMethod(IType type, java.lang.String name)
-
parseBooleanLiteral
private boolean parseBooleanLiteral(Token token)
-
parseNullLiteral
private boolean parseNullLiteral(Token token)
-
parseStandAloneDataStructureInitialization
private boolean parseStandAloneDataStructureInitialization(Token token)
-
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
private java.util.List<IType> getTypes(java.util.List<? extends IExpression> list)
-
getInitializableType
private ContextType getInitializableType()
-
getCurrentInitializableContextType
private ContextType getCurrentInitializableContextType()
-
supportsInitializer
private boolean supportsInitializer(IType type)
-
parseBlockExpression
private void parseBlockExpression()
-
getBlockReturnType
private IType getBlockReturnType(IParsedElement blockBody, IType ctxType)
-
getContextTypesForBlockArgument
private java.util.List<IType> getContextTypesForBlockArgument(ContextType ctxType)
-
inferReturnTypeForBlockArgument
private IType inferReturnTypeForBlockArgument(ContextType contextType, IType[] unbound)
-
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
private TypeLiteral 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, java.util.List<IConstructorType> listConstructorTypes)
-
isAnnotation
private boolean isAnnotation(IType type)
-
getPreliminaryConstructorTypes
private java.util.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
public void pushParsingStaticMember(java.lang.Boolean bParsingStaticFeature)
-
popParsingStaticMember
public void popParsingStaticMember()
-
isParsingAbstractConstructor
public boolean isParsingAbstractConstructor()
-
pushParsingAbstractConstructor
public void pushParsingAbstractConstructor(java.lang.Boolean bParsingAbstractConstructor)
-
popParsingAbstractConstructor
public void popParsingAbstractConstructor()
-
getConstructor
private IConstructorInfo getConstructor(IType instanceClass)
-
verifyConstructorIsAccessible
private void verifyConstructorIsAccessible(IType instanceClass, NewExpression e, IConstructorType constructorType, boolean bAnonymous)
-
getModifierString
private java.lang.String getModifierString(IConstructorType constructorType)
-
parseObjectInitializer
private boolean parseObjectInitializer(IType objectType)
-
_parseObjectInitializer
private boolean _parseObjectInitializer(IType objectType)
-
_doParseObjectInitializer
private void _doParseObjectInitializer(IType objectType)
-
parseInitializerAssignment
private boolean parseInitializerAssignment(IType objectType)
-
parseInitializerIdentifier
private void parseInitializerIdentifier(IType objectType)
-
getGsConstructorInfo
private GosuConstructorInfo getGsConstructorInfo(IConstructorInfo ci, IGosuClassInternal gsInstanceClass)
-
isConcreteInitializableType
private boolean isConcreteInitializableType(IType type)
-
isInitializableType
private boolean isInitializableType(IType type)
-
verifyCanConstructInnerClassFromCallSite
private void verifyCanConstructInnerClassFromCallSite(NewExpression e, IType innerClass)
-
isConstructingNonStaticInnerClassFromNonStaticContext
private boolean isConstructingNonStaticInnerClassFromNonStaticContext(IType innersEnclosingClass, IGosuClassInternal constructingFromClass)
-
isNonStaticInnerClassConstructableFromCurrentFunction
private boolean isNonStaticInnerClassConstructableFromCurrentFunction(IType innersEnclosingClass, IGosuClassInternal constructingFromClass)
-
_parseInitializerExpression
private void _parseInitializerExpression(ContextType type)
-
getImplicitConstructor
private IConstructorInfo getImplicitConstructor(IType type)
-
parseCollectionInitializerList
private void parseCollectionInitializerList(IType type)
-
parseMapInitializerList
private void parseMapInitializerList(ContextType type)
-
parseArrayValueList
java.util.List<Expression> parseArrayValueList(IType componentType)
-
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
private IType verifySuperTypeIsDeclaredInCompilingClass(TypeLiteral superTypeLiteral)
-
isSuperCall
private boolean isSuperCall(Expression rootExpression, Expression indexExpression)
-
parseFeatureLiteral
private boolean parseFeatureLiteral(Token token, Expression root)
-
parseErrantFeatureLiteralParameterization
private void parseErrantFeatureLiteralParameterization(FeatureLiteral fle)
-
evalTypes
private java.util.List<IType> evalTypes(java.util.List<IExpression> arguments)
-
allTypeLiterals
private boolean allTypeLiterals(java.util.List<IExpression> args)
-
setOperatorLineNumber
private void setOperatorLineNumber(Expression expression, int operatorLineNumber)
-
parseNameOrMethodCall
boolean parseNameOrMethodCall(Token token)
-
_parseNameOrMethodCall
boolean _parseNameOrMethodCall(Token token)
-
parseMethodCall
private void parseMethodCall(java.lang.String[] t, int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol, int markBeforeTypeArgs, int iLocBeforeTypeArgs, int markAfterTypeArgs)
-
hasParseExceptions
private boolean hasParseExceptions(Expression expr)
-
maybeParseImpliedThisMethod
private boolean maybeParseImpliedThisMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, java.lang.String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs)
-
maybeParseImpliedStaticMethod
private void maybeParseImpliedStaticMethod(int iOffset, int iLineNum, int iColumn, LazyLightweightParserState state, java.lang.String strFunction, int markBeforeTypeArgs, int iLocBeforeTypeArgs)
-
maybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr
private void maybeParseIdentifierAssumingOpenParenIsForParenthesizedExpr(java.lang.String[] t, int iOffset, int iLineNum, int iColumn, IParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol, int mark, int iLocationsCount)
-
backtrack
void backtrack(int mark, int iLocationsCount)
-
backtrack
void backtrack(int mark, int iLocationsCount, Expression expr)
-
parseMethodCall
private void parseMethodCall(java.lang.String[] t, IParserState state, MethodCallExpression e, IType[] typeParameters, java.lang.String strFunction, ISymbol functionSymbol)
-
verifyReifiedCallHasProperContext
private void verifyReifiedCallHasProperContext(MethodCallExpression e)
-
supportPropertyAccessAsGetterCall
private boolean supportPropertyAccessAsGetterCall(java.lang.String[] t, java.lang.String strFunction, IFunctionSymbol function)
-
maybeCaptureSymbol
private ISymbol maybeCaptureSymbol(MethodCallExpression e, ISymbol functionSymbol)
-
isInSeparateStringTemplateExpression
private boolean isInSeparateStringTemplateExpression()
-
possiblyResolveFunctionSymbol
private ISymbol possiblyResolveFunctionSymbol(MethodCallExpression e, java.lang.String strFunction)
-
isBlockSym
private boolean isBlockSym(ISymbol functionSymbol)
-
staticRefToNonStaticFunc
private boolean staticRefToNonStaticFunc(java.lang.String stFunction, Expression[] eArgs)
-
staticRefToNonStaticProp
private boolean staticRefToNonStaticProp(java.lang.String name)
-
boundFunctionType
private IFunctionType boundFunctionType(IFunctionType funcType)
-
getDFSForFunctionType
private IDynamicFunctionSymbol getDFSForFunctionType(java.lang.String strFunction, MethodScore bestMethod)
-
verifyNotCallingOverridableFunctionFromCtor
private void verifyNotCallingOverridableFunctionFromCtor(MethodCallExpression mce)
-
verifyNotCallingOverridableFunctionFromCtor
private void verifyNotCallingOverridableFunctionFromCtor(BeanMethodCallExpression mce)
-
isParsingConstructor
private boolean isParsingConstructor()
-
parsePossibleFunctionParameterization
private IType[] parsePossibleFunctionParameterization(java.lang.String name, MethodCallExpression e)
-
parseIdentifier
private void parseIdentifier(java.lang.String[] T)
-
parseIdentifier
private void parseIdentifier(Identifier e, java.lang.String[] T)
-
verifyReifiedCallHasProperContext
private void verifyReifiedCallHasProperContext(PropertyAccessIdentifier e, DynamicPropertySymbol dps)
-
parseIdentifierOrTypeLiteralOrEnumConstant
private void parseIdentifierOrTypeLiteralOrEnumConstant(java.lang.String[] T, int iOffset, int iLineNum, int iColumn)
-
tryToMakeTypeLiteral
private void tryToMakeTypeLiteral(java.lang.String[] T, int iOffset, int iLineNum, int iColumn, java.lang.String name, Expression errantExpression)
-
parseNamespaceStartOrRelativeType
private void parseNamespaceStartOrRelativeType(java.lang.String[] T, boolean bInterface)
-
parseUnqualifiedEnumConstant
private MemberAccess parseUnqualifiedEnumConstant(java.lang.String strConstValue)
-
verifyArgCount
private void verifyArgCount(ParsedElement element, int iArgs, IFunctionType funcType)
-
verifyOverrideNotOnMethodThatDoesNotExtend
private void verifyOverrideNotOnMethodThatDoesNotExtend(ParsedElement element, DynamicFunctionSymbol dfs)
-
verifyArgCount
private void verifyArgCount(ParsedElement element, int iArgs, IConstructorType ctorType)
-
parsePlainFunction
private void parsePlainFunction(IFunctionSymbol functionSymbol)
-
parseDynamicFunction
private void parseDynamicFunction(Symbol dynamcSymbol)
-
parseMemberAccess
private void parseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly)
-
parseMemberAccess
private void parseMemberAccess(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty)
-
parseMethodMember
private void parseMethodMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.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, java.lang.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, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, BeanMethodCallExpression e, IType rootType, boolean bExpansion, IType[] typeParameters, int iParenStart)
-
findFunction
private IFunctionType findFunction(java.util.List<IFunctionType> listFunctionTypes, boolean bNoArgsProvided)
-
verifyReifiedCallHasProperContext
private void verifyReifiedCallHasProperContext(BeanMethodCallExpression e)
-
parsePropertyMember
private void parsePropertyMember(Expression rootExpression, MemberAccessKind kind, int iTokenStart, java.lang.String strMemberName, LazyLightweightParserState state, boolean bParseTypeLiteralOnly, boolean createSynthesizedProperty, IType rootType, boolean bExpansion)
-
verifyReifiedCallHasProperContext
private void verifyReifiedCallHasProperContext(MemberAccess e)
-
verifySuperAccess
private void verifySuperAccess(Expression rootExpression, Expression memberExpr, IAttributedFeatureInfo feature, java.lang.String strMemberName)
-
shouldParseMemberInstead
private boolean shouldParseMemberInstead(java.lang.String strMemberName, IType rootType, IType memberType)
-
isEndOfArgExpression
private boolean isEndOfArgExpression()
-
isParenthesisTerminalExpression
private boolean isParenthesisTerminalExpression()
-
isParenthesisTerminalExpression
private boolean isParenthesisTerminalExpression(boolean bMatchOpeningParen)
-
isEndOfExpression
private boolean isEndOfExpression()
-
getInnerClass
private IType getInnerClass(java.lang.String strMemberName, IType memberType, IHasInnerClass typeLiteralType)
-
maybeParameterizeOnCtxType
private IFunctionType maybeParameterizeOnCtxType(IFunctionType funcType)
-
getPreliminaryFunctionTypes
private java.util.List<IFunctionType> getPreliminaryFunctionTypes(java.lang.String strMemberName, BeanMethodCallExpression e, IType rootType, IType[] typeParameters)
-
addJavaPropertyMethods
private void addJavaPropertyMethods(java.lang.String strMemberName, IType rootType, java.util.List<IFunctionType> listFunctionTypes)
-
maybeGetProxiedPropertyInfo
private IPropertyInfo maybeGetProxiedPropertyInfo(java.lang.String propName, IPropertyInfo pi)
-
isBlockInvoke
private boolean isBlockInvoke(Expression rootExpression, java.lang.String strMemberName, IType rootType)
-
isErrorType
private boolean isErrorType(IType rootType)
-
parameterizeFunctionTypes
private java.util.ArrayList<IFunctionType> parameterizeFunctionTypes(Expression expression, IType[] typeParameters, java.util.List<IFunctionType> listFunctionTypes)
-
handleAbstractCtor
private void handleAbstractCtor(int iTokenStart, java.lang.String strMemberName, BeanMethodCallExpression e, IParserState state)
-
verifyCanParameterizeType
private boolean verifyCanParameterizeType(ParsedElement elem, IType type, IType[] typeParam)
-
isTypeParamHeaderCompiling
private boolean isTypeParamHeaderCompiling(IType typeParam)
-
parseFunctionParameterization
private IType[] parseFunctionParameterization(Expression e)
-
parseArgumentList
private MethodScore parseArgumentList(IType rootType, ParsedElement element, java.util.List<? extends IInvocableType> listFunctionTypes, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)
-
findLeastParams
private MethodScore findLeastParams(java.util.List<MethodScore> scoredMethods)
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, java.util.List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)
-
reparseErrorsAreDifferent
private boolean reparseErrorsAreDifferent(TypeVarToTypeMap inferenceMap, java.util.List<Expression> argExpressions)
-
errorsSame
private boolean errorsSame(java.util.List<IParseIssue> newErrors, java.util.List<IParseIssue> errors)
-
reparseArguments
private MethodScore reparseArguments(MethodScore bestScore, java.util.List<Expression> argExpressions, ParsedElement element, int mark, int iLocationsCount, IType rootType, IType[] typeParams, boolean bVerifyArgs, boolean bNoArgsProvided)
-
maskCurrentFunctionTypeVarsFromPriorInference
private TypeVarToTypeMap maskCurrentFunctionTypeVarsFromPriorInference()
-
maybeInferFunctionTypeVarsFromReturnType
private void maybeInferFunctionTypeVarsFromReturnType(IInvocableType invType, TypeVarToTypeMap inferenceMap)
-
factorInParseErrors
private java.util.List<MethodScore> factorInParseErrors(java.util.List<MethodScore> scoredMethods)
-
hasContextSensitiveExpression
private boolean hasContextSensitiveExpression(java.util.List<Expression> argExpressions)
-
isGenericMethodCall
private boolean isGenericMethodCall(Expression e)
-
maybeAvoidNestedMethodScoring
private java.util.List<? extends IInvocableType> maybeAvoidNestedMethodScoring(java.util.List<? extends IInvocableType> listFunctionTypes)
-
backtrackArgParsing
private void backtrackArgParsing(int mark, int iLocationsCount, java.util.List<Expression> argExpressions)
-
maybeRemoveNonGenericMethods
private java.util.List<? extends IInvocableType> maybeRemoveNonGenericMethods(java.util.List<? extends IInvocableType> listFunctionTypes, IType[] typeParams)
-
maybeReassignOffsetForArgumentListClause
private void maybeReassignOffsetForArgumentListClause(int iArgs, java.util.List<Expression> argExpressions, int iOffset, int iLineNum, int iColumn)
-
maybeBoundFunctionTypeVars
private IInvocableType maybeBoundFunctionTypeVars(IInvocableType inferredFunctionType, TypeVarToTypeMap inferenceMap)
-
assignArgExprPosition
private java.util.List<java.lang.Integer> assignArgExprPosition(java.util.List<? extends IInvocableType> listFunctionTypes, int iArgs, java.util.List<java.lang.Integer> namedArgOrder, int iArgPos)
-
addMisingArgsWithDefaultValues
void addMisingArgsWithDefaultValues(ParsedElement element, IInvocableType funcType, java.util.List<Expression> argExpressions, java.util.List<LightweightParserState> parserStates, boolean bShouldScoreMethods)
-
parseArgExpression
private int parseArgExpression(IInvocableType funcType, int iArgs, java.util.List<Expression> argExpressions, TypeVarToTypeMap inferenceMap, java.util.List<LightweightParserState> parserStates, java.util.Set<java.lang.String> namedArgs, boolean bMethodScoring)
-
useDynamicTypeIfDynamicRoot
private IType useDynamicTypeIfDynamicRoot(IInvocableType funcType, IType ctxType)
-
getDefaultValueOrPlaceHolderForParam
private Expression getDefaultValueOrPlaceHolderForParam(int iParam, IInvocableType invType)
-
parseNamedParamExpression
private int parseNamedParamExpression(IInvocableType invType, boolean bMethodScoring)
-
getParamTypeFromParamName
private IType getParamTypeFromParamName(IInvocableType invType, java.lang.String strParam, int[] iPos)
-
parseNamedParamIdentifier
private void parseNamedParamIdentifier()
-
isDynamicMethod
private boolean isDynamicMethod(java.util.List<? extends IInvocableType> listFunctionTypes)
-
makeDynamicMethodScore
private MethodScore makeDynamicMethodScore(java.util.List<? extends IInvocableType> listFunctionTypes, java.util.List<Expression> argExpressions)
-
getParamTypes
private IType[] getParamTypes(java.util.List<Expression> argExpressions)
-
scoreMethod
private MethodScore scoreMethod(IType callsiteEnclosingType, IType rootType, IInvocableType funcType, java.util.List<? extends IInvocableType> listFunctionTypes, java.util.List<Expression> argExpressions, boolean bSimple, boolean bLookInCache)
-
inferFunctionTypeVariables
private void inferFunctionTypeVariables(IType rawContextType, IType boundContextType, Expression expression, TypeVarToTypeMap inferenceMap)
-
inferArgType
private IType inferArgType(IType contextType, TypeVarToTypeMap inferenceMap)
-
handleImplicitCoercionsInArgs
private void handleImplicitCoercionsInArgs(ParsedElement element, IType[] argTypes, IType[] rawArgTypes, java.util.List<Expression> args)
-
extractContextTypes
private java.util.List<java.util.List<IType>> extractContextTypes(java.util.List<? extends IInvocableType> funcTypes)
-
verifyArgTypes
private void verifyArgTypes(IType[] argTypes, java.util.List<Expression> argExpressions, java.util.List<LightweightParserState> parserStates)
-
parseLiteral
void parseLiteral(Token token)
-
_parseLiteral
void _parseLiteral(Token token)
-
parseRelativeFeatureLiteral
private boolean parseRelativeFeatureLiteral(Token token)
-
parseNumberLiteral
private boolean parseNumberLiteral(Token token)
-
atNumberLiteralStart
private boolean atNumberLiteralStart()
-
parseNumberLiteral
private boolean parseNumberLiteral(Token token, boolean negated)
-
parseNumericValue
private void parseNumericValue(java.lang.String strValue)
-
parseIntOrLongOrBigInt
private NumericLiteral parseIntOrLongOrBigInt(java.lang.String strValue)
-
stripPrefix
private java.lang.String stripPrefix(java.lang.String strValue)
-
parseDoubleOrBigDec
private NumericLiteral parseDoubleOrBigDec(java.lang.String strValue)
-
parseFloat
private NumericLiteral parseFloat(java.lang.String strValue)
-
parseDouble
private NumericLiteral parseDouble(java.lang.String strValue)
-
parseExplicitlyTypedNumericLiteral
private void parseExplicitlyTypedNumericLiteral(java.lang.String strValue, IType numericTypeFrom)
-
isPrefixNumericLiteral
private boolean isPrefixNumericLiteral(java.lang.String strValue)
-
parsePrefixNumericLiteral
private void parsePrefixNumericLiteral(java.lang.String strValue, IType numericTypeFrom)
-
isHexLiteral
private boolean isHexLiteral(java.lang.String num)
-
isBinLiteral
private boolean isBinLiteral(java.lang.String num)
-
parsePostfixNumericLiteral
private void parsePostfixNumericLiteral(java.lang.String num, IType numericTypeFrom, int radix)
-
maybeStripTypeModifier
private java.lang.String maybeStripTypeModifier(java.lang.String strValue, IType numericTypeFrom)
-
hasTypeModifier
private boolean hasTypeModifier(java.lang.String strValue)
-
pushErrorNumberLiteral
private void pushErrorNumberLiteral(ResourceKey key, java.lang.Object... args)
-
getNumericTypeFrom
private IType getNumericTypeFrom(java.lang.String strValue)
-
parseCharLiteral
private boolean parseCharLiteral(Token token)
-
parseStringLiteralSeparately
private boolean parseStringLiteralSeparately()
-
parseStringLiteral
private boolean parseStringLiteral(Token token)
-
_parseStringLiteral
private void _parseStringLiteral(boolean bUnterminatedLiteral, Token t)
-
parseTemplatizedStringLiteral
private TemplateStringLiteral parseTemplatizedStringLiteral(Token t)
-
parseTypeLiteral
public boolean parseTypeLiteral()
Description copied from interface:IGosuParserConsumes a type literal from the current tokenizer, if one exists.- Specified by:
parseTypeLiteralin interfaceIGosuParser- Returns:
- true if a type literal was found, false otherwise
-
parseTypeLiteral
public boolean parseTypeLiteral(Token token)
-
parseTypeLiteral
boolean parseTypeLiteral(boolean bInterface)
-
parseTypeLiteral
boolean parseTypeLiteral(Token token, boolean bInterface)
-
parseTypeLiteralForNewExpression
void parseTypeLiteralForNewExpression()
-
_parseTypeLiteralWithAggregateSyntax
boolean _parseTypeLiteralWithAggregateSyntax(Token token, boolean bIgnoreArrayBrackets, boolean bInterface)
-
_parseTypeLiteral
boolean _parseTypeLiteral(Token token, boolean bIgnoreArrayBrackets, boolean bInterface)
-
matchPrimitiveType
boolean matchPrimitiveType(boolean bSuperThis)
-
parseAggregateTypeLiteral
private void parseAggregateTypeLiteral(boolean bInterface)
-
addToCompoundType
private void addToCompoundType(java.util.List<IType> types)
-
parseBlockLiteral
void parseBlockLiteral()
-
_parseBlockLiteral
void _parseBlockLiteral()
-
parseTypeLiteral
void parseTypeLiteral(java.lang.String[] T, boolean bIgnoreArrayBrackets, boolean bInterface, int iOffset, int iLineNum, int iColumn)
-
verifyTypeAccessible
private void verifyTypeAccessible(TypeLiteral expr, IType type)
-
parseCompoundTypeLiteralExpression
private void parseCompoundTypeLiteralExpression(java.lang.String[] T, boolean bInterface, int iOffset, int iLineNum, int iColumn)
-
isTypeParameterErrorMsg
private boolean isTypeParameterErrorMsg(Expression expr, java.util.List<IParseIssue> exceptions)
-
resolveArrayOrParameterizationPartOfTypeLiteral
private boolean resolveArrayOrParameterizationPartOfTypeLiteral(java.lang.String[] T, boolean bIgnoreArrayBrackets, TypeLiteral e)- Returns:
- True if parsed parameterized type.
-
isParsingCompileTimeConstantExpression
private boolean isParsingCompileTimeConstantExpression()
-
parseArrayType
private boolean parseArrayType(TypeLiteral tl)
-
parseTypeParameters
java.util.List<TypeLiteral> parseTypeParameters(IType enclosingType)
-
makeTypeParameterListClause
private void makeTypeParameterListClause(int iOffset, int iLineNum, int iColumn, java.util.List<TypeLiteral> paramTypes)
-
parseParameterType
boolean parseParameterType(IType boundingType)
-
boxTypeLiteralsType
private void boxTypeLiteralsType(TypeLiteral tl)
-
parseStatement
boolean parseStatement()
-
parseStatement
boolean parseStatement(boolean bAsStmtBlock)
-
parseStatement
boolean parseStatement(boolean forceKeepStmtBlock, boolean bAsStmtBlock)
-
hasSemicolon
private boolean hasSemicolon(IParsedElement stmt)
-
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
void parseLocalVarStatement(VarStatement varStmt)
-
parseVarStatement
void parseVarStatement(VarStatement varStmt, Token idToken, boolean bClassMember)
-
isLocalVarTopLevelFunctionBodyStmt
private boolean isLocalVarTopLevelFunctionBodyStmt()
-
detectLikelyJavaCast
private void detectLikelyJavaCast(Expression eas)
-
recoverFromJavaStyleCast
private boolean recoverFromJavaStyleCast(Expression eas)
-
parseVarPropertyClause
DynamicPropertySymbol parseVarPropertyClause(VarStatement varStmt, ModifierInfo modifiers, java.lang.String strVarIdentifier, IType varType, boolean parseInitializer)
-
makeProperties
DynamicPropertySymbol makeProperties(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.String strPropertyName, IType varType, ModifierInfo modifiers, boolean bGetter, boolean bSetter)
-
makeGetter
private DynamicPropertySymbol makeGetter(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.String strPropertyName, IType varType, ModifierInfo modifiers, ISymbol symbol, ICompilableType gsClass, boolean bOldSyntax)
-
makeSetter
private DynamicPropertySymbol makeSetter(VarStatement varStmt, java.lang.String strVarIdentifier, java.lang.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
static void setFromTargetModifier(IGosuAnnotation anno, ModifierInfo modifierInfo)
-
appliesToElementType
private boolean appliesToElementType(IGosuAnnotation anno, java.lang.annotation.ElementType elemType)
-
parseDelegateStatement
void parseDelegateStatement(DelegateStatement delegateStmt, java.lang.String strIdentifier)
-
parseSwitchStatement
private void parseSwitchStatement()
-
parseDoWhileStatement
private void parseDoWhileStatement()
-
verifyLoopConditionNotAlwaysFalse
private void verifyLoopConditionNotAlwaysFalse(Expression e)
-
parseWhileStatement
private void parseWhileStatement()
-
parseForEachStatement
private void parseForEachStatement()
-
parseIndexVar
private void parseIndexVar(ForEachStatement forEachStmt)
-
parseIteratorVar
private void parseIteratorVar(ForEachStatement forEachStmt, IType type)
-
parseReturnStatement
private void parseReturnStatement()
-
inConstructorCtx
private boolean inConstructorCtx()
-
setReturnNullExpr
private void setReturnNullExpr(ReturnStatement returnStmt, boolean bProgramCallFunction)
-
parseThrowStatement
private void parseThrowStatement()
-
parseTryCatchFinallyStatement
private void parseTryCatchFinallyStatement()
-
parseIfStatement
private void parseIfStatement()
-
parseUsingStatement
private void parseUsingStatement()
-
parseVarStatementsInUsingStatement
private void parseVarStatementsInUsingStatement(UsingStatement usingStmt)
-
verifyTypeForUsingStatementPredicate
private void verifyTypeForUsingStatementPredicate(ParsedElement pe, IType type)
-
maybeRemoveIMonitorLockError
private void maybeRemoveIMonitorLockError(ParsedElement pe)
-
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
public UsesStatementList parseUsesStatementList(boolean bResolveUsesTypes)
- Specified by:
parseUsesStatementListin 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
private java.util.List<IAttributedFeatureInfo> getAllStaticFeatures(IGosuClass gsType, java.lang.String name)
-
processUsesStatementTypeLiteral
private void processUsesStatementTypeLiteral(boolean bResolveTypes, UsesStatement usesStmt, TypeLiteral typeLiteral)
-
parseCaseClauses
void parseCaseClauses(SwitchStatement switchStmt)
-
parseCaseClause
boolean parseCaseClause(SwitchStatement switchStmt, java.util.List<CaseClause> cases)
-
verifyCaseIsUnique
private void verifyCaseIsUnique(Expression e, java.util.List<CaseClause> cases)
-
isIsolatedCase
private boolean isIsolatedCase(java.util.List<CaseClause> cases)
-
warnIfCaseNotTerminated
private void warnIfCaseNotTerminated(java.util.List<Statement> statements)
-
parseDefaultClause
boolean parseDefaultClause(SwitchStatement switchStmt, java.util.List<CaseClause> cases)
-
checkInstruction
void checkInstruction(boolean bProcessDirectives)
-
checkUnexpectedEof
private void checkUnexpectedEof()
-
clearExpressionInTemplateUnlessParsingEvaluateFunctionBody
private void clearExpressionInTemplateUnlessParsingEvaluateFunctionBody(Expression e)
-
removeInnerClasses
private void removeInnerClasses(IParsedElement e)
-
removeLocation
private void removeLocation(ParseTree location)
-
parseDirective
private void parseDirective(boolean processDirectives)
-
parseAssignmentOrMethodCall
boolean parseAssignmentOrMethodCall()
-
parseAssignment
private void parseAssignment(Expression e, java.lang.String assignOp)
-
isParsingProgramEvaluateMethod
private boolean isParsingProgramEvaluateMethod()
-
isSymbolInScopeDirectly
private boolean isSymbolInScopeDirectly(ISymbol idSym)
-
parseAssignmentRhs
private Expression parseAssignmentRhs(java.lang.String operation, IType typeExpected, Expression lhs)
-
buildRhsOfCompoundOperator
private Expression buildRhsOfCompoundOperator(Expression lhs, java.lang.String assignOp, Expression rhs)
-
matchAssignmentOperator
private java.lang.String matchAssignmentOperator()
-
matchRightShiftAssign
private java.lang.String matchRightShiftAssign()
-
parseFunctionOrPropertyDeclaration
ISymbol parseFunctionOrPropertyDeclaration(ParsedElement element)
-
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)
-
isValidAnnotationMethodReturnType
private boolean isValidAnnotationMethodReturnType(IType returnType)
-
putThisAndSuperSymbols
private void putThisAndSuperSymbols(ModifierInfo modifiers)
-
findProgramPropertyDfs
private DynamicFunctionSymbol findProgramPropertyDfs(java.lang.String strFunctionName, java.util.ArrayList<ISymbol> args)
-
getTypeVarDefsFromDecl
private java.util.List<TypeVariableDefinitionImpl> getTypeVarDefsFromDecl(IGenericTypeVariable[] typeVars)
-
findCorrespondingDeclDfs
private DynamicFunctionSymbol findCorrespondingDeclDfs(int iOffsetName, int iModifiers)
-
isDeclarationKeyword
boolean isDeclarationKeyword(java.lang.String strKeyword)
-
assignPossibleDuplicateDfs
static DynamicFunctionSymbol assignPossibleDuplicateDfs(DynamicFunctionSymbol dfsDecl, java.lang.Iterable symbols)
-
addNameInDeclaration
void addNameInDeclaration(java.lang.String strName, int iOffsetName, int iLineNumName, int iColumnName, boolean bHasName)
-
parsingFunctionsEncloseMyClass
private boolean parsingFunctionsEncloseMyClass()
-
parseProgramEntryPointBody
FunctionStatement parseProgramEntryPointBody()
-
getProgramEntryPointDfs
private DynamicFunctionSymbol getProgramEntryPointDfs()
-
handleExpressionStatementList
private StatementList handleExpressionStatementList(Expression expr)
-
wrapProgramExpressionInReturnStmt
private ReturnStatement wrapProgramExpressionInReturnStmt(Expression e)
-
addDefaultReturnStmt
private void addDefaultReturnStmt(DynamicFunctionSymbol dfsDecl, StatementList stmtList)
-
parseProgramFunctionBody
private boolean parseProgramFunctionBody(FunctionType type)
-
parseProgramExpr
private void parseProgramExpr()
-
maybeSetExternalSymbols
private void maybeSetExternalSymbols()
-
removeLocationsFrom
void removeLocationsFrom(int iLocationsCount)
-
parseFunctionBody
private boolean parseFunctionBody(FunctionStatement functionStmt, FunctionType type)
-
parseFunctionDecl
DynamicFunctionSymbol parseFunctionDecl(ParsedElement element, ModifierInfo modifiers)
-
parseFunctionDecl
DynamicFunctionSymbol parseFunctionDecl(ParsedElement element, boolean bProperty, boolean bGetter, ModifierInfo modifiers)
-
parseFunctionDecl
DynamicFunctionSymbol parseFunctionDecl(ParsedElement element, java.lang.String T, boolean bProperty, boolean bGetter, ModifierInfo modifiers)
-
matchNonDeclarationKeyword
private boolean matchNonDeclarationKeyword()
-
maybeEatNonDeclKeyword
boolean maybeEatNonDeclKeyword(boolean bHasName, java.lang.String strFunctionName)
-
verifyFunction
private void verifyFunction(DynamicFunctionSymbol dfs, ParsedElement element)
-
verifyReified
private void verifyReified(boolean bValidOverrideFound, ParsedElement element, DynamicFunctionSymbol dfs)
-
areParametersEquivalent_Enhancement
private boolean areParametersEquivalent_Enhancement(DynamicFunctionSymbol dfs1, DynamicFunctionSymbol dfs2)
-
maybeAddPrivateFunctionsIfSuperInSamePackage
private java.util.List<IFunctionSymbol> maybeAddPrivateFunctionsIfSuperInSamePackage(java.lang.String name, java.util.List<IFunctionSymbol> functions)
-
addAllNonstaticPrivateMethods
private void addAllNonstaticPrivateMethods(java.lang.String name, IGosuClassInternal superClass, java.util.List<IFunctionSymbol> functions)
-
propertyTypeDiffers
private boolean propertyTypeDiffers(DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)
-
verifySameNumberOfFunctionTypeVars
private void verifySameNumberOfFunctionTypeVars(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)
-
areDFSsInSameNameSpace
private boolean areDFSsInSameNameSpace(IDynamicSymbol newDfs, IDynamicSymbol existingDfs)
-
verifyNoImplicitPropertyMethodConflicts
private void verifyNoImplicitPropertyMethodConflicts(ParsedElement element, DynamicFunctionSymbol dfs)
-
verifyFunctionConflictsWithPropoertySetter
void verifyFunctionConflictsWithPropoertySetter(ParsedElement element, DynamicFunctionSymbol dfs, DynamicPropertySymbol dps)
-
verifyPropertySetterConflictsWithFunction
void verifyPropertySetterConflictsWithFunction(ParsedElement element, DynamicFunctionSymbol dfs, java.lang.String propName, DynamicFunctionSymbol existingDfs)
-
returnTypesCompatible
private boolean returnTypesCompatible(DynamicFunctionSymbol dfsExisting, DynamicFunctionSymbol dfs)
-
areParametersEquivalent
private boolean areParametersEquivalent(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting, IType... extraParams)
-
_areParametersEquivalent
private boolean _areParametersEquivalent(IDynamicFunctionSymbol dfs1, IDynamicFunctionSymbol dfs2, IType[] args, IType[] toArgs)
-
maybeResolveFunctionTypeVars
private IType maybeResolveFunctionTypeVars(IDynamicFunctionSymbol dfs, IType type)
-
doParametersReifyToSameBytecodeType
public boolean doParametersReifyToSameBytecodeType(IDynamicFunctionSymbol dfs, IDynamicFunctionSymbol dfsExisting)
-
doTypesReifyToTheSameBytecodeType
boolean doTypesReifyToTheSameBytecodeType(IType toArg, IType arg)
-
getOwningTypeForDfs
private IGosuClass getOwningTypeForDfs(IDynamicSymbol dfs)
-
verifyNotWeakerAccess
private void verifyNotWeakerAccess(ParsedElement element, DynamicFunctionSymbol dfs, DynamicFunctionSymbol dfsExisting)
-
parseParameterDeclarationList
public java.util.ArrayList<ISymbol> parseParameterDeclarationList(IParsedElement element, boolean bStatic, java.util.List<IType> inferredArgumentTypes)
- Specified by:
parseParameterDeclarationListin interfaceIGosuParser
-
parseParameterDeclarationList
public java.util.ArrayList<ISymbol> parseParameterDeclarationList(IParsedElement element, boolean bStatic, java.util.List<IType> inferredArgumentTypes, boolean bProperty, boolean bGetter, boolean bEmpty, boolean bVarDynamicArg)
-
parseLocalAnnotations
private java.util.List<IGosuAnnotation> parseLocalAnnotations(java.util.List<IGosuAnnotation> annotations)
-
parseTypeVariableDefs
java.util.List<ITypeVariableDefinitionExpression> parseTypeVariableDefs(ParsedElement parsedElem, boolean bFunction, java.util.List<TypeVariableDefinitionImpl> typeVarDefListFromDecl)
-
parseTypeVariableDefList
java.util.List<ITypeVariableDefinitionExpression> parseTypeVariableDefList(ParsedElement parsedElem, boolean bForFunction, java.util.List<TypeVariableDefinitionImpl> typeVarDefListFromDecl)
-
typeVarExists
public boolean typeVarExists(java.util.Map<java.lang.String,ITypeVariableDefinition> typeVarMap, TypeVariableDefinition typeVarDef)
-
parseTypeVariableDefinition
void parseTypeVariableDefinition(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass)
-
_parseTypeVariableDefinition
boolean _parseTypeVariableDefinition(ParsedElement parsedElem, TypeVariableDefinition typeVarDef, boolean bFirstPass)
-
parseVariance
private void parseVariance(ParsedElement parsedElem, TypeVariableDefinition typeVarDef)
-
getEnclosingType
private IType getEnclosingType()
-
isCompilingOrReparsingHeader
private boolean isCompilingOrReparsingHeader()
-
pushExpression
protected void pushExpression(Expression e)
- Overrides:
pushExpressionin classParserBase
-
maybeVerifyDoubleLiterals
private void maybeVerifyDoubleLiterals(Expression e)
-
maybeVerifyDoubleLiteral
private void maybeVerifyDoubleLiteral(IExpression oneSide, IExpression otherSide)
-
popExpression
public Expression popExpression()
- Specified by:
popExpressionin interfaceIGosuParser- Overrides:
popExpressionin classParserBase
-
setTokenizer
public void setTokenizer(ISourceCodeTokenizer tokenizer)
- Specified by:
setTokenizerin interfaceIGosuParser
-
peekExpression
protected Expression peekExpression()
- Overrides:
peekExpressionin classParserBase
-
peekParsedElement
protected ParsedElement peekParsedElement()
-
pushStatement
protected void pushStatement(Statement stmt)
- Overrides:
pushStatementin classParserBase
-
popStatement
protected Statement popStatement()
- Overrides:
popStatementin classParserBase
-
peekStatement
protected Statement peekStatement()
- Overrides:
peekStatementin classParserBase
-
pushDynamicFunctionSymbol
protected void pushDynamicFunctionSymbol(DynamicFunctionSymbol stmt)
-
popDynamicFunctionSymbol
protected DynamicFunctionSymbol popDynamicFunctionSymbol()
-
peekDynamicFunctionSymbol
protected DynamicFunctionSymbol peekDynamicFunctionSymbol()
-
clearDfsStack
protected void clearDfsStack()
-
putDfsDeclsInTable
public void putDfsDeclsInTable(ISymbolTable table)
- Specified by:
putDfsDeclsInTablein interfaceIGosuParser
-
putDfsDeclInSetByName
public void putDfsDeclInSetByName(IDynamicFunctionSymbol dfs)
- Specified by:
putDfsDeclInSetByNamein interfaceIGosuParser
-
nextIndexOfErrantDuplicateDynamicSymbol
public int nextIndexOfErrantDuplicateDynamicSymbol(IDynamicSymbol ds, java.util.Collection<? extends ISymbol> symbols, boolean bCheckContains)
-
symbolIn
private boolean symbolIn(IDynamicSymbol ds, java.util.Collection<? extends ISymbol> symbols)
-
setDfsDeclInSetByName
public void setDfsDeclInSetByName(java.util.Map<java.lang.String,java.util.List<IFunctionSymbol>> dfsDecl)
- Specified by:
setDfsDeclInSetByNamein interfaceIGosuParser
-
newDfsDeclInSetByName
protected void newDfsDeclInSetByName()
-
getDfsDecls
public java.util.Map<java.lang.String,java.util.List<IFunctionSymbol>> getDfsDecls()
- Specified by:
getDfsDeclsin interfaceIGosuParser
-
getFunctionTypesForName
protected java.util.List<IFunctionType> getFunctionTypesForName(java.lang.String strFunctionName)
-
resolveTypeLiteral
protected TypeLiteral resolveTypeLiteral(java.lang.String[] T)
-
resolveTypeLiteral
protected TypeLiteral resolveTypeLiteral(java.lang.String[] T, boolean bRelative, boolean bInterface)
-
getDfsDeclsForFunction
protected java.util.List<IFunctionSymbol> getDfsDeclsForFunction(java.lang.String strFunctionName)
-
resolveTypeLiteral
public TypeLiteral resolveTypeLiteral(java.lang.String strTypeName)
Resolves the type literal given by strTypeName. If parentType is non null then strTypeName is assumed relative to the given parent.- Specified by:
resolveTypeLiteralin interfaceIGosuParser- Parameters:
strTypeName-
-
resolveTypeLiteral
public TypeLiteral resolveTypeLiteral(java.lang.String strTypeName, boolean bRelative, boolean bInterface)
-
resolveTypeName
private IType resolveTypeName(java.lang.String strTypeName, boolean bRelative)
-
getTypeVarDef
private ITypeVariableDefinition getTypeVarDef(java.lang.String strTypeName)
-
getEnclosingTypeVars
private java.util.Map<java.lang.String,TypeVariableDefinition> getEnclosingTypeVars()
-
resolveTypeByRelativeName
private IType resolveTypeByRelativeName(java.lang.String strTypeName)
-
getTypeVariables
public java.util.HashMap<java.lang.String,ITypeVariableDefinition> getTypeVariables()
- Specified by:
getTypeVariablesin interfaceIGosuParser
-
setTypeVariables
protected void setTypeVariables(java.util.HashMap<java.lang.String,ITypeVariableDefinition> map)
-
parseClass
public IGosuClassInternal parseClass(java.lang.String strQualifiedClassName, ISourceFileHandle sourceFile, boolean bThrowOnWarnings, boolean bFullyCompile) throws ParseResultsException
Description copied from interface:IGosuParserFor use by code editors etc.- Specified by:
parseClassin interfaceIGosuParser- Throws:
ParseResultsException
-
getFunctionType
public IFunctionType getFunctionType(IType classBean, java.lang.String functionName, Expression[] eArgs, java.util.List<IFunctionType> listAllMatchingMethods, GosuParser parser, boolean bMatchParamTypes) throws ParseException
- Throws:
ParseException
-
checkForStaticMethod
private void checkForStaticMethod(IType classBean, Expression[] eArgs, java.lang.String strMethod, GosuParser parserState) throws ParseException
- Throws:
ParseException
-
inferFunctionType
private IInvocableType inferFunctionType(IInvocableType funcType, java.util.List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap)
-
inferConstructor
private IInvocableType inferConstructor(ConstructorType ctorType, TypeVarToTypeMap inferenceMap)
-
inferFunction
private IInvocableType inferFunction(IInvocableType funcType, java.util.List<? extends IExpression> eArgs, boolean bUseCtx, TypeVarToTypeMap inferenceMap)
-
getPropertyNameFromMethodName
private java.lang.String getPropertyNameFromMethodName(java.lang.String strMethod)
-
getPropertyNameFromMethodNameIncludingSetter
private java.lang.String getPropertyNameFromMethodNameIncludingSetter(java.lang.String strMethod)
-
getPropertyNameFromMethodName
private java.lang.String getPropertyNameFromMethodName(java.lang.String strPrefix, java.lang.String strMethod)
-
verifyPropertyWritable
private void verifyPropertyWritable(IType classRoot, java.lang.String strProperty, boolean bFromObjInitializer) throws ParseException
- Throws:
ParseException
-
getConstructorType
public IConstructorType getConstructorType(IType classBean, Expression[] eArgs, java.util.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, java.lang.String foundName, java.lang.String actualName, ResourceKey errorKey, boolean isEndsWithMatchOK)
-
verifyCase
private void verifyCase(ParsedElement element, java.lang.String foundName, java.lang.String actualName, IParserState state, ResourceKey errorKey, boolean isEndsWithMatchOK)
-
setWarnOnCaseIssue
public void setWarnOnCaseIssue(boolean warnOnCaseIssue)
- Specified by:
setWarnOnCaseIssuein interfaceIGosuParser
-
setEditorParser
public void setEditorParser(boolean bStudioEditorParser)
- Specified by:
setEditorParserin interfaceIGosuParser
-
isEditorParser
public boolean isEditorParser()
- Specified by:
isEditorParserin interfaceIGosuParser
-
getState
public IParserState getState()
- Specified by:
getStatein 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
public void setLocationsFromProgramClassParser(java.util.List<ParseTree> savedLocations)
-
maybeAdvanceTokenizerToEndOfSavedLocation
boolean maybeAdvanceTokenizerToEndOfSavedLocation()
-
pushTypeVariableTypesToInfer
protected void pushTypeVariableTypesToInfer(IInvocableType functionType)
-
addTypeVarsToList
private void addTypeVarsToList(java.util.List<IType> typeVariableTypes, IGenericTypeVariable[] typeVariables)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-