Package editor
Class GosuDocument
- java.lang.Object
-
- javax.swing.text.AbstractDocument
-
- javax.swing.text.PlainDocument
-
- editor.GosuDocument
-
- All Implemented Interfaces:
java.io.Serializable,javax.swing.text.Document
public class GosuDocument extends javax.swing.text.PlainDocumentThis 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 classGosuDocument.AttributeKey(package private) classGosuDocument.DocumentReaderClass to provide Reader functionality from a portion of a Document.classGosuDocument.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[]_charArrayprivate ITokenizerInstructor_instructorprivate java.util.List<IParseTree>_locationsprivate int_locationsOffsetprivate ParseResultsException_pe(package private) static java.lang.ObjectCommentAttributeKey to be used in AttributeSet's holding a value of Token.
-
Constructor Summary
Constructors Constructor Description GosuDocument()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GosuDocument.ScannercreateScanner()java.util.List<IParseTree>getLocations()ParseResultsExceptiongetParseResultsException()Pair<java.lang.Boolean,ParseWarningForDeprecatedMember>getParseWarningStartingAt(int iPos)intgetScannerStart(int p)Fetch a reasonable location to start scanning given the desired start location.java.lang.IntegergetStyleCodeAtPosition(int iPosition)Returns a style code for the absolute position in the document or null if no code is mapped.private java.lang.IntegergetStyleCodeForParsedElement(int iPosition, IParsedElement parsedElem)Given a IParsedElement return a special Style.booleanhasErrorStartingAt(int iPos)protected voidinsertUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng, javax.swing.text.AttributeSet attr)Updates document structure as a result of text insertion.protected voidremoveUpdate(javax.swing.text.AbstractDocument.DefaultDocumentEvent chng)Updates any document structure as a result of text removal.voidsetLocations(java.util.List<IParseTree> locations)The parsed Locations for the document.voidsetLocationsOffset(int locationsOffset)voidsetParseResultsException(ParseResultsException pe)voidsetTokenizerInstructor(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
-
-
-
-
Field Detail
-
CommentAttribute
static final java.lang.Object CommentAttribute
Key to be used in AttributeSet's holding a value of Token.
-
_pe
private ParseResultsException _pe
-
_locations
private java.util.List<IParseTree> _locations
-
_locationsOffset
private int _locationsOffset
-
_charArray
private char[] _charArray
-
_instructor
private ITokenizerInstructor _instructor
-
-
Method Detail
-
createScanner
public GosuDocument.Scanner createScanner()
- Returns:
- A new lexical analyzer for this document.
-
setParseResultsException
public void setParseResultsException(ParseResultsException pe)
-
getParseResultsException
public ParseResultsException getParseResultsException()
-
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)
-
getParseWarningStartingAt
public Pair<java.lang.Boolean,ParseWarningForDeprecatedMember> getParseWarningStartingAt(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:
insertUpdatein classjavax.swing.text.PlainDocument- Parameters:
chng- the change eventattr- 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:
removeUpdatein classjavax.swing.text.PlainDocument- Parameters:
chng- the change event
-
setTokenizerInstructor
public void setTokenizerInstructor(ITokenizerInstructor tokenizerInstructor)
-
-