Class GosuParser

    • Field Detail

      • PENDING_BOUNDING_TYPE

        public static final IType PENDING_BOUNDING_TYPE
      • _bParsed

        private boolean _bParsed
      • _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
      • _strNamespace

        private java.lang.String _strNamespace
      • _iBreakOk

        private int _iBreakOk
      • _iContinueOk

        private int _iContinueOk
      • _iReturnOk

        int _iReturnOk
      • _bThrowForWarnings

        private boolean _bThrowForWarnings
      • _bStudioEditorParser

        private boolean _bStudioEditorParser
      • _bWarnOnCaseIssue

        private boolean _bWarnOnCaseIssue
      • _parsingAbstractConstructor

        private Stack<java.lang.Boolean> _parsingAbstractConstructor
      • _blockReturnTypeStack

        private Stack<IType> _blockReturnTypeStack
      • _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
    • Method Detail

      • getScriptPart

        public IScriptPartId getScriptPart()
        Description copied from interface: IGosuParser
        The context associated with the parser's script. E.g., a file name, a library, a rule, etc.
        Specified by:
        getScriptPart in interface IGosuParser
      • pushScriptPart

        public void pushScriptPart​(IScriptPartId partId)
      • pushInferenceMap

        public void pushInferenceMap​(TypeVarToTypeMap inferenceMap)
      • setScript

        public void setScript​(java.lang.CharSequence source)
        Description copied from interface: IGosuParser
        Set the script or expression to parse and execute.
        Specified by:
        setScript in interface IGosuParser
        Parameters:
        source - The rule (Gosu) source to parse/execute.
      • setScript

        public void setScript​(ISource src)
        Description copied from interface: IGosuParser
        Set the script or expression to parse and execute.
        Specified by:
        setScript in interface IGosuParser
        Parameters:
        src - A reader for the rule (Gosu) source to parse/execute.
      • setScript

        public void setScript​(SourceCodeReader reader)
        Description copied from interface: IGosuParser
        Set the script or expression to parse and execute.
        Specified by:
        setScript in interface IGosuParser
        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:
        getScript in class ParserBase
      • setSymbolTable

        public void setSymbolTable​(ISymbolTable symTable)
        Description copied from interface: IGosuParser
        Sets the parser's symbol table.
        Specified by:
        setSymbolTable in interface IGosuParser
        Parameters:
        symTable - The symbol table the parser will use when parsing and executing rules.
      • getNamespace

        public java.lang.String getNamespace()
      • setNamespace

        void setNamespace​(java.lang.String strNamespace)
      • peekParsingFunction

        public FunctionType peekParsingFunction()
      • iterateParsingFunctions

        public java.util.Iterator<FunctionType> iterateParsingFunctions()
      • pushParsingFunction

        void pushParsingFunction​(FunctionType functionType)
      • 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

        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)
      • isGenerateRootExpressionAccessForProgram

        public boolean isGenerateRootExpressionAccessForProgram()
      • isForStringLiteralTemplate

        private boolean isForStringLiteralTemplate()
      • parseProgramClasspathStatements

        java.util.List<IClasspathStatement> parseProgramClasspathStatements()
      • parseProgramTypeLoaderStatements

        java.util.List<ITypeLoaderStatement> parseProgramTypeLoaderStatements()
      • parseExpOrProgram

        public IExpression parseExpOrProgram​(IScriptPartId partId)
                                      throws ParseResultsException
        Description copied from interface: IGosuParser
        Parses a Gosu expression. If that fails, attempts to parse a Gosu program (which is also an expression, but which has a different grammar.
        Specified by:
        parseExpOrProgram in interface IGosuParser
        Parameters:
        partId - Script part id
        Returns:
        either a pure expression or Program, depending on the source
        Throws:
        ParseResultsException - if neither an expression nor a program parses according to the Gosu grammar. We try to make a best guess as to which IParseResultsException to throw, so that the errors are as close as possible to the true cause of the IParseResultsException
      • parseExpOrProgram

        public IExpression parseExpOrProgram​(IScriptPartId partId,
                                             boolean isolatedScope,
                                             boolean assignRuntime)
                                      throws ParseResultsException
        Description copied from interface: IGosuParser
        Parses a Gosu expression. If that fails, attempts to parse a Gosu program (which is also an expression, but which has a different grammar.
        Specified by:
        parseExpOrProgram in interface IGosuParser
        Parameters:
        partId - Script part id
        isolatedScope - 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
      • isParsed

        public boolean isParsed()
        Specified by:
        isParsed in interface IGosuParser
        Returns:
        Whether or not the referenced Gosu source has been parsed.
      • setParsed

        protected void setParsed​(boolean bParsed)
      • getLocations

        public java.util.List<IParseTree> getLocations()
        Specified by:
        getLocations in interface IGosuParser
        Returns:
        All the locations corresponding to parsed elements.
      • peekLocation

        public ParseTree peekLocation()
      • hasWarnings

        public boolean hasWarnings()
        Specified by:
        hasWarnings in interface IGosuParser
        Returns:
        Did the most recent parse have warnings
      • parseExpression

        void parseExpression()
      • parseExpression

        void parseExpression​(ContextType contextType)
      • parseExpression

        void parseExpression​(ContextType ctxType,
                             boolean bVerify)
      • parseExpressionNoVerify

        void parseExpressionNoVerify​(ContextType ctxType)
      • pushInferredContextTypes

        public void pushInferredContextTypes​(ContextType ctxType)
      • popInferredContextTypes

        public void popInferredContextTypes()
      • convertNullLiterals

        private void convertNullLiterals​(IType contextType)
      • convertNumberLiteralsToContextType

        private void convertNumberLiteralsToContextType​(IType contextType)
      • getNumberTypeFromContextType

        private IType getNumberTypeFromContextType​(IType ctxType)
      • parseConditionalExpression

        void parseConditionalExpression()
      • _parseConditionalExpression

        void _parseConditionalExpression()
      • isPrimitiveOrBoxedOrBigIntegerOrBigDecimal

        private boolean isPrimitiveOrBoxedOrBigIntegerOrBigDecimal​(IType type)
      • canCoerceFromString

        private boolean canCoerceFromString​(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)
      • 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)
      • verifyRelationalOperandsComparable

        private void verifyRelationalOperandsComparable​(BinaryExpression expr)
      • areMetaTypes

        private boolean areMetaTypes​(IType lhsType,
                                     IType rhsType)
      • 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()
      • 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)
      • 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()
      • findImpl

        public static IType findImpl​(IType typeToInit)
      • supportsInitializer

        private boolean supportsInitializer​(IType type)
      • parseBlockExpression

        private void parseBlockExpression()
      • 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)
      • scrubAnnotationConstructors

        private void scrubAnnotationConstructors​(IType declaringClass,
                                                 java.util.List<IConstructorType> listConstructorTypes)
      • isAnnotation

        private boolean isAnnotation​(IType type)
      • 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()
      • 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)
      • 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)
      • 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)
      • verifyReifiedCallHasProperContext

        private void verifyReifiedCallHasProperContext​(MethodCallExpression e)
      • supportPropertyAccessAsGetterCall

        private boolean supportPropertyAccessAsGetterCall​(java.lang.String[] t,
                                                          java.lang.String strFunction,
                                                          IFunctionSymbol function)
      • 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)
      • 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)
      • 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)
      • 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,
                                       boolean createSynthesizedProperty)
      • 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)
      • findFunction

        private IFunctionType findFunction​(java.util.List<IFunctionType> listFunctionTypes,
                                           boolean bNoArgsProvided)
      • 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)
      • 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)
      • 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)
      • verifyCanParameterizeType

        private boolean verifyCanParameterizeType​(ParsedElement elem,
                                                  IType type,
                                                  IType[] typeParam)
      • isTypeParamHeaderCompiling

        private boolean isTypeParamHeaderCompiling​(IType typeParam)
      • parseFunctionParameterization

        private IType[] parseFunctionParameterization​(Expression e)
      • 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)
      • 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)
      • 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)
      • 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)
      • boundCtxType

        private IType boundCtxType​(IType ctxType)
      • boundCtxType

        private IType boundCtxType​(IType ctxType,
                                   boolean bKeepTypeVars)
      • 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)
      • 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)
      • parseTypeLiteral

        public boolean parseTypeLiteral()
        Description copied from interface: IGosuParser
        Consumes a type literal from the current tokenizer, if one exists.
        Specified by:
        parseTypeLiteral in interface IGosuParser
        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)
      • 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()
      • 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)
      • isAssignableFrom

        private boolean isAssignableFrom​(IType type1,
                                         IType type2)
      • 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()
      • parseUsesStatement

        void parseUsesStatement()
      • parseUsesStatement

        void parseUsesStatement​(boolean bResolveTypes)
      • processUsesStatementTypeLiteral

        private void processUsesStatementTypeLiteral​(boolean bResolveTypes,
                                                     UsesStatement usesStmt,
                                                     TypeLiteral typeLiteral)
      • 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)
      • 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)
      • matchAssignmentOperator

        private java.lang.String matchAssignmentOperator()
      • matchRightShiftAssign

        private java.lang.String matchRightShiftAssign()
      • parseFunctionOrPropertyDeclaration

        ISymbol parseFunctionOrPropertyDeclaration​(ParsedElement element)
      • parsePropertyDefinition

        boolean parsePropertyDefinition()
      • parseFunctionDefinition

        boolean parseFunctionDefinition()
      • 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)
      • findCorrespondingDeclDfs

        private DynamicFunctionSymbol findCorrespondingDeclDfs​(int iOffsetName,
                                                               int iModifiers)
      • isDeclarationKeyword

        boolean isDeclarationKeyword​(java.lang.String strKeyword)
      • addNameInDeclaration

        void addNameInDeclaration​(java.lang.String strName,
                                  int iOffsetName,
                                  int iLineNumName,
                                  int iColumnName,
                                  boolean bHasName)
      • parsingFunctionsEncloseMyClass

        private boolean parsingFunctionsEncloseMyClass()
      • parseProgramFunctionBody

        private boolean parseProgramFunctionBody​(FunctionType type)
      • parseProgramExpr

        private void parseProgramExpr()
      • maybeSetExternalSymbols

        private void maybeSetExternalSymbols()
      • removeLocationsFrom

        void removeLocationsFrom​(int iLocationsCount)
      • isTerminal

        private boolean isTerminal​(Statement statement,
                                   IType returnType)
      • matchNonDeclarationKeyword

        private boolean matchNonDeclarationKeyword()
      • maybeEatNonDeclKeyword

        boolean maybeEatNonDeclKeyword​(boolean bHasName,
                                       java.lang.String strFunctionName)
      • 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)
      • doTypesReifyToTheSameBytecodeType

        boolean doTypesReifyToTheSameBytecodeType​(IType toArg,
                                                  IType arg)
      • parseParameterDeclarationList

        public java.util.ArrayList<ISymbol> parseParameterDeclarationList​(IParsedElement element,
                                                                          boolean bStatic,
                                                                          java.util.List<IType> inferredArgumentTypes,
                                                                          boolean bProperty,
                                                                          boolean bGetter,
                                                                          boolean bEmpty,
                                                                          boolean bVarDynamicArg)
      • getEnclosingType

        private IType getEnclosingType()
      • isCompilingOrReparsingHeader

        private boolean isCompilingOrReparsingHeader()
      • maybeVerifyDoubleLiterals

        private void maybeVerifyDoubleLiterals​(Expression e)
      • maybeVerifyDoubleLiteral

        private void maybeVerifyDoubleLiteral​(IExpression oneSide,
                                              IExpression otherSide)
      • peekParsedElement

        protected ParsedElement peekParsedElement()
      • clearDfsStack

        protected void clearDfsStack()
      • 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)
      • newDfsDeclInSetByName

        protected void newDfsDeclInSetByName()
      • 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:
        resolveTypeLiteral in interface IGosuParser
        Parameters:
        strTypeName -
      • resolveTypeLiteral

        public TypeLiteral resolveTypeLiteral​(java.lang.String strTypeName,
                                              boolean bRelative,
                                              boolean bInterface)
      • resolveTypeName

        private IType resolveTypeName​(java.lang.String strTypeName,
                                      boolean bRelative)
      • getEnclosingTypeVars

        private java.util.Map<java.lang.String,​TypeVariableDefinition> getEnclosingTypeVars()
      • resolveTypeByRelativeName

        private IType resolveTypeByRelativeName​(java.lang.String strTypeName)
      • setTypeVariables

        protected void setTypeVariables​(java.util.HashMap<java.lang.String,​ITypeVariableDefinition> map)
      • 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)
      • setEditorParser

        public void setEditorParser​(boolean bStudioEditorParser)
        Specified by:
        setEditorParser in interface IGosuParser
      • 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:
        toString in class java.lang.Object