Package editor

Class GosuDocument

  • All Implemented Interfaces:
    java.io.Serializable, javax.swing.text.Document

    public class GosuDocument
    extends javax.swing.text.PlainDocument
    This is quite primitive in that it simply provides support for lexically analyzing the Gosu source.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  GosuDocument.AttributeKey  
      (package private) class  GosuDocument.DocumentReader
      Class to provide Reader functionality from a portion of a Document.
      class  GosuDocument.Scanner  
      • Nested classes/interfaces inherited from class javax.swing.text.AbstractDocument

        javax.swing.text.AbstractDocument.AbstractElement, javax.swing.text.AbstractDocument.AttributeContext, javax.swing.text.AbstractDocument.BranchElement, javax.swing.text.AbstractDocument.Content, javax.swing.text.AbstractDocument.DefaultDocumentEvent, javax.swing.text.AbstractDocument.ElementEdit, javax.swing.text.AbstractDocument.LeafElement
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private char[] _charArray  
      private ITokenizerInstructor _instructor  
      private java.util.List<IParseTree> _locations  
      private int _locationsOffset  
      private ParseResultsException _pe  
      (package private) static java.lang.Object CommentAttribute
      Key to be used in AttributeSet's holding a value of Token.
      • Fields inherited from class javax.swing.text.PlainDocument

        lineLimitAttribute, tabSizeAttribute
      • Fields inherited from class javax.swing.text.AbstractDocument

        BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
      • Fields inherited from interface javax.swing.text.Document

        StreamDescriptionProperty, TitleProperty
    • Constructor Summary

      Constructors 
      Constructor Description
      GosuDocument()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      GosuDocument.Scanner createScanner()  
      java.util.List<IParseTree> getLocations()  
      ParseResultsException getParseResultsException()  
      Pair<java.lang.Boolean,​ParseWarningForDeprecatedMember> getParseWarningStartingAt​(int iPos)  
      int getScannerStart​(int p)
      Fetch a reasonable location to start scanning given the desired start location.
      java.lang.Integer getStyleCodeAtPosition​(int iPosition)
      Returns a style code for the absolute position in the document or null if no code is mapped.
      private java.lang.Integer getStyleCodeForParsedElement​(int iPosition, IParsedElement parsedElem)
      Given a IParsedElement return a special Style.
      boolean hasErrorStartingAt​(int iPos)  
      protected void insertUpdate​(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng, javax.swing.text.AttributeSet attr)
      Updates document structure as a result of text insertion.
      protected void removeUpdate​(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng)
      Updates any document structure as a result of text removal.
      void setLocations​(java.util.List<IParseTree> locations)
      The parsed Locations for the document.
      void setLocationsOffset​(int locationsOffset)  
      void setParseResultsException​(ParseResultsException pe)  
      void setTokenizerInstructor​(ITokenizerInstructor tokenizerInstructor)  
      • Methods inherited from class javax.swing.text.PlainDocument

        createDefaultRoot, getDefaultRootElement, getParagraphElement, insertString
      • Methods inherited from class javax.swing.text.AbstractDocument

        addDocumentListener, addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeDocumentListener, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • CommentAttribute

        static final java.lang.Object CommentAttribute
        Key to be used in AttributeSet's holding a value of Token.
      • _locations

        private java.util.List<IParseTree> _locations
      • _locationsOffset

        private int _locationsOffset
      • _charArray

        private char[] _charArray
    • Constructor Detail

      • GosuDocument

        public GosuDocument()
    • Method Detail

      • createScanner

        public GosuDocument.Scanner createScanner()
        Returns:
        A new lexical analyzer for this document.
      • setLocations

        public void setLocations​(java.util.List<IParseTree> locations)
        The parsed Locations for the document.
      • getLocations

        public java.util.List<IParseTree> getLocations()
      • setLocationsOffset

        public void setLocationsOffset​(int locationsOffset)
      • hasErrorStartingAt

        public boolean hasErrorStartingAt​(int iPos)
      • getStyleCodeAtPosition

        public java.lang.Integer getStyleCodeAtPosition​(int iPosition)
        Returns a style code for the absolute position in the document or null if no code is mapped.
      • getStyleCodeForParsedElement

        private java.lang.Integer getStyleCodeForParsedElement​(int iPosition,
                                                               IParsedElement parsedElem)
        Given a IParsedElement return a special Style. Or return null if no special style exists for the IParsedElement.
      • getScannerStart

        public int getScannerStart​(int p)
        Fetch a reasonable location to start scanning given the desired start location. This allows for adjustments needed to accomodate multiline comments.
      • insertUpdate

        protected void insertUpdate​(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng,
                                    javax.swing.text.AttributeSet attr)
        Updates document structure as a result of text insertion. This will happen within a write lock. The superclass behavior of updating the line map is executed followed by marking any comment areas that should backtracked before scanning.
        Overrides:
        insertUpdate in class javax.swing.text.PlainDocument
        Parameters:
        chng - the change event
        attr - the set of attributes
      • removeUpdate

        protected void removeUpdate​(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng)
        Updates any document structure as a result of text removal. This will happen within a write lock. The superclass behavior of updating the line map is executed followed by placing a lexical update command on the analyzer queue.
        Overrides:
        removeUpdate in class javax.swing.text.PlainDocument
        Parameters:
        chng - the change event
      • setTokenizerInstructor

        public void setTokenizerInstructor​(ITokenizerInstructor tokenizerInstructor)