|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker
org.fife.ui.rsyntaxtextarea.modes.PythonTokenMaker
public class PythonTokenMaker
Scanner for the Python programming language.
Field Summary | |
---|---|
protected Token |
currentToken
Used in the creation of the linked list. |
protected Token |
firstToken
The first token in the returned linked list. |
static int |
LONG_STRING_1
|
static int |
LONG_STRING_2
|
protected Token |
previousToken
Used in the creation of the linked list. |
static int |
YYEOF
This character denotes the end of file |
static int |
YYINITIAL
lexical states |
Fields inherited from class org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker |
---|
offsetShift, s, start |
Constructor Summary | |
---|---|
PythonTokenMaker()
Constructor. |
|
PythonTokenMaker(InputStream in)
Creates a new scanner. |
|
PythonTokenMaker(Reader in)
Creates a new scanner There is also a java.io.InputStream version of this constructor. |
Method Summary | |
---|---|
void |
addNullToken()
Adds a null token to the end of the current linked list of tokens. |
void |
addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset)
Adds the token specified to the current linked list of tokens. |
void |
addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset,
boolean hyperlink)
Adds the token specified to the current linked list of tokens. |
void |
addToken(Segment segment,
int start,
int end,
int tokenType,
int startOffset)
Adds the token specified to the current linked list of tokens. |
boolean |
getCurlyBracesDenoteCodeBlocks()
Returns whether this programming language uses curly braces ('{' and '}') to denote code blocks. |
Action |
getInsertBreakAction()
Returns an action to handle "insert break" key presses (i.e. |
int |
getLastTokenTypeOnLine(Segment text,
int initialTokenType)
Returns the last token on this line's type if the token is "unfinished", or Token.NULL if it was finished. |
String[] |
getLineCommentStartAndEnd()
Returns the text to place at the beginning and end of a line to "comment" it in a this programming language. |
boolean |
getMarkOccurrencesOfTokenType(int type)
Returns whether tokens of the specified type should have "mark occurrences" enabled for the current programming language. |
boolean |
getShouldIndentNextLineAfter(Token token)
The default implementation returns false always. |
Token |
getTokenList(Segment text,
int initialTokenType,
int startOffset)
Returns the first token in the linked list of tokens generated from text . |
boolean |
isMarkupLanguage()
The default implementation returns false always. |
protected void |
resetTokenList()
Deletes the linked list of tokens so we can begin anew. |
void |
setWhitespaceVisible(boolean visible,
RSyntaxTextArea textArea)
Sets whether tokens are generated that "show" whitespace. |
void |
yybegin(int newState)
Enters a new lexical state |
char |
yycharat(int pos)
Returns the character at position pos from the matched text. |
void |
yyclose()
Closes the input stream. |
int |
yylength()
Returns the length of the matched text region. |
Token |
yylex()
Resumes scanning until the next regular expression is matched, the end of input is encountered or an I/O-Error occurs. |
void |
yypushback(int number)
Pushes the specified amount of characters back into the input stream. |
void |
yyreset(Reader reader)
Resets the scanner to read from a new input stream. |
int |
yystate()
Returns the current lexical state. |
String |
yytext()
Returns the text matched by the current regular expression. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.fife.ui.rsyntaxtextarea.TokenMaker |
---|
addNullToken, getCurlyBracesDenoteCodeBlocks, getInsertBreakAction, getLastTokenTypeOnLine, getMarkOccurrencesOfTokenType, getShouldIndentNextLineAfter, isMarkupLanguage, setWhitespaceVisible |
Field Detail |
---|
public static final int YYEOF
public static final int YYINITIAL
public static final int LONG_STRING_2
public static final int LONG_STRING_1
protected Token firstToken
protected Token currentToken
protected Token previousToken
Constructor Detail |
---|
public PythonTokenMaker()
public PythonTokenMaker(Reader in)
in
- the java.io.Reader to read input from.public PythonTokenMaker(InputStream in)
in
- the java.io.Inputstream to read input from.Method Detail |
---|
public void addToken(char[] array, int start, int end, int tokenType, int startOffset)
addToken
in interface TokenMaker
array
- The character array.start
- The starting offset in the array.end
- The ending offset in the array.tokenType
- The token's type.startOffset
- The offset in the document at which this token
occurs.public String[] getLineCommentStartAndEnd()
getLineCommentStartAndEnd
in interface TokenMaker
public Token getTokenList(Segment text, int initialTokenType, int startOffset)
text
. This method must be implemented by
subclasses so they can correctly implement syntax highlighting.
getTokenList
in interface TokenMaker
text
- The text from which to get tokens.initialTokenType
- The token type we should start with.startOffset
- The offset into the document at which
text
starts.
Token
in a linked list representing
the syntax highlighted text.public final void yyreset(Reader reader) throws IOException
reader
- the new input stream
IOException
public final void yyclose() throws IOException
IOException
public final int yystate()
public final void yybegin(int newState)
newState
- the new lexical statepublic final String yytext()
public final char yycharat(int pos)
pos
- the position of the character to fetch.
A value from 0 to yylength()-1.
public final int yylength()
public void yypushback(int number)
number
- the number of characters to be read again.
This number must not be greater than yylength()!public Token yylex() throws IOException
IOException
- if any I/O-Error occurspublic void addNullToken()
addNullToken
in interface TokenMaker
public void addToken(Segment segment, int start, int end, int tokenType, int startOffset)
segment
- Segment
to get text from.start
- Start offset in segment
of token.end
- End offset in segment
of token.tokenType
- The token's type.startOffset
- The offset in the document at which this token
occurs.public void addToken(char[] array, int start, int end, int tokenType, int startOffset, boolean hyperlink)
array
- The character array.start
- The starting offset in the array.end
- The ending offset in the array.tokenType
- The token's type.startOffset
- The offset in the document at which this token
occurs.hyperlink
- Whether this token is a hyperlink.public boolean getCurlyBracesDenoteCodeBlocks()
The default implementation returns false
; subclasses can
override this method if necessary.
getCurlyBracesDenoteCodeBlocks
in interface TokenMaker
public Action getInsertBreakAction()
null
. Subclasses
can override.
getInsertBreakAction
in interface TokenMaker
null
.public int getLastTokenTypeOnLine(Segment text, int initialTokenType)
Token.NULL
if it was finished. For example, if C-style
syntax highlighting is being implemented, and text
contained a line of code that contained the beginning of a comment but
no end-comment marker ("*\/"), then this method would return
Token.COMMENT_MULTILINE
for that line. This is useful
for doing syntax highlighting.
getLastTokenTypeOnLine
in interface TokenMaker
text
- The line of tokens to examine.initialTokenType
- The token type to start with (i.e., the value
of getLastTokenTypeOnLine
for the line before
text
).
Token.NULL
if the line was completed.public boolean getMarkOccurrencesOfTokenType(int type)
Token.IDENTIFIER
.
Subclasses can override this method to support other token types, such
as Token.VARIABLE
.
getMarkOccurrencesOfTokenType
in interface TokenMaker
type
- The token type.
public boolean getShouldIndentNextLineAfter(Token token)
false
always. Languages
that wish to better support auto-indentation can override this method.
getShouldIndentNextLineAfter
in interface TokenMaker
token
- The token the previous line ends with.
public boolean isMarkupLanguage()
false
always.
Subclasses that are highlighting a markup language should override this
method to return true
.
isMarkupLanguage
in interface TokenMaker
false
always.protected void resetTokenList()
getLastTokenTypeOnLine(Segment, int)
or
TokenMaker.getTokenList(Segment, int, int)
.
public void setWhitespaceVisible(boolean visible, RSyntaxTextArea textArea)
setWhitespaceVisible
in interface TokenMaker
visible
- Whether whitespace should be visible.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |