Class ParseIssue

    • Method Detail

      • fillInStackTrace

        public Throwable fillInStackTrace()
        Don't fill in stack trace since parse issues are not really "exceptional" in terms of the parser's Java implementation; we don't care much about the Java stack trace when these are thrown. Rather parse issues provide a means to tag parsed elements with issues discovered during parsing, such as syntax warnings and errors. Hence, the ParseIssue interface.

        Note this method is otherwise very costly from a performance standpoint.

        Overrides:
        fillInStackTrace in class Throwable
      • getLineNumber

        public Integer getLineNumber()
      • getLineOffset

        public Integer getLineOffset()
      • addLineOffset

        public void addLineOffset​(int offset)
      • getTokenColumn

        public Integer getTokenColumn()
      • getContextString

        public String getContextString()
      • getContextStringNoLineNumbers

        public String getContextStringNoLineNumbers()
      • getStateSource

        public String getStateSource()
      • setStateSource

        public void setStateSource​(String parserSource)
      • getPlainMessage

        public String getPlainMessage()
        Specified by:
        getPlainMessage in interface IParseIssue
        Returns:
        the raw message for this parse issue, with no formatting
      • getConsoleMessage

        public String getConsoleMessage()
        Specified by:
        getConsoleMessage in interface IParseIssue
        Returns:
        the message for this parse issue formatted for printing out to a console
      • makeContextString

        public static String makeContextString​(int lineOfError,
                                               String source,
                                               int lineReportingOffset)
      • getUIMessage

        public String getUIMessage()
        Specified by:
        getUIMessage in interface IParseIssue
        Returns:
        the message formatted for use by an IDE
      • getLine

        public int getLine()
        Specified by:
        getLine in interface IParseIssue
        Returns:
        the line that this issue is on
      • getSource

        public IParsedElement getSource()
        Warning: Only valid if called from the parser thread. Otherwise we null it out.
        Specified by:
        getSource in interface IParseIssue
        Returns:
        the parsed element that this issue is associated with
      • getSymbolTable

        public ISymbolTable getSymbolTable()
        Warning: Only valid if called from the parser thread. Otherwise we null it out.
        Specified by:
        getSymbolTable in interface IParseIssue
        Returns:
        the symbol table state at the creation of this issue. Can return null if no symbol table is present.
      • appliesToPosition

        public boolean appliesToPosition​(int iPos)
        Description copied from interface: IParseIssue
        Returns true if this issue is relevant to the given position
        Specified by:
        appliesToPosition in interface IParseIssue
      • getMessageKey

        public ResourceKey getMessageKey()
        Specified by:
        getMessageKey in interface IParseIssue
        Returns:
        the resource key for this ParseIssue, which can be used as a kind of identifier for the type of issue.
      • adjustOffset

        public void adjustOffset​(int offset,
                                 int lineNumOffset,
                                 int columnOffset)
      • getLineReportingOffset

        public int getLineReportingOffset()