public class FormulaTokenMaker extends AbstractJFlexCTokenMaker
| 限定符和类型 | 字段和说明 |
|---|---|
protected TokenImpl |
currentToken
Used in the creation of the linked list.
|
static int |
EOL_COMMENT
lexical states
|
protected TokenImpl |
firstToken
The first token in the returned linked list.
|
static int |
MLC |
protected TokenImpl |
previousToken
Used in the creation of the linked list.
|
static int |
YYEOF
This character denotes the end of file
|
static int |
YYINITIAL |
INSERT_BREAK_ACTIONoffsetShift, s, start| 构造器和说明 |
|---|
FormulaTokenMaker()
Constructor.
|
FormulaTokenMaker(java.io.InputStream in)
Creates a new scanner.
|
FormulaTokenMaker(java.io.Reader in)
Creates a new scanner
There is also a java.io.InputStream version of this constructor.
|
| 限定符和类型 | 方法和说明 |
|---|---|
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(javax.swing.text.Segment segment,
int start,
int end,
int tokenType,
int startOffset)
Adds the token specified to the current linked list of tokens.
|
protected OccurrenceMarker |
createOccurrenceMarker()
Returns the occurrence marker to use for this token maker.
|
int |
getClosestStandardTokenTypeForInternalType(int type)
Returns the closest
"standard" token type for a given
"internal" token type (e.g. one whose value is < 0). |
int |
getLastTokenTypeOnLine(javax.swing.text.Segment text,
int initialTokenType)
Returns the last token on this line's type if the token is "unfinished",
or
TokenTypes.NULL if it was finished. |
java.lang.String[] |
getLineCommentStartAndEnd()
Returns the text to place at the beginning and end of a
line to "comment" it in a this programming language.
|
OccurrenceMarker |
getOccurrenceMarker()
Returns the object in charge of marking all occurrences of the token
at the current caret position, if it is a relevant token.
|
Token |
getTokenList(javax.swing.text.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 |
setLanguageIndex(int languageIndex)
Sets the language index to assign to tokens moving forward.
|
java.lang.String |
test() |
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(java.io.Reader reader)
Resets the scanner to read from a new input stream.
|
int |
yystate()
Returns the current lexical state.
|
java.lang.String |
yytext()
Returns the text matched by the current regular expression.
|
getCurlyBracesDenoteCodeBlocks, getInsertBreakAction, getMarkOccurrencesOfTokenType, getShouldIndentNextLineAfteryybeginpublic static final int YYEOF
public static final int EOL_COMMENT
public static final int YYINITIAL
public static final int MLC
protected TokenImpl firstToken
protected TokenImpl currentToken
protected TokenImpl previousToken
public FormulaTokenMaker()
public FormulaTokenMaker(java.io.Reader in)
in - the java.io.Reader to read input from.public FormulaTokenMaker(java.io.InputStream in)
in - the java.io.Inputstream to read input from.public void addToken(char[] array,
int start,
int end,
int tokenType,
int startOffset)
addToken 在接口中 TokenMakerarray - 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 java.lang.String[] getLineCommentStartAndEnd()
getLineCommentStartAndEnd 在接口中 TokenMakerpublic Token getTokenList(javax.swing.text.Segment text, int initialTokenType, int startOffset)
text. This method must be implemented by
subclasses so they can correctly implement syntax highlighting.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(java.io.Reader reader)
throws java.io.IOException
reader - the new input streamjava.io.IOExceptionpublic final java.lang.String test()
public final void yyclose()
throws java.io.IOException
java.io.IOExceptionpublic final int yystate()
public final void yybegin(int newState)
yybegin 在类中 AbstractJFlexTokenMakernewState - the new lexical statepublic final java.lang.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 java.io.IOException
java.io.IOException - if any I/O-Error occurspublic void addNullToken()
addNullToken 在接口中 TokenMakerpublic void addToken(javax.swing.text.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.protected OccurrenceMarker createOccurrenceMarker()
public int getClosestStandardTokenTypeForInternalType(int type)
"standard" token type for a given
"internal" token type (e.g. one whose value is < 0).
The default implementation returns type always, which
denotes that a mapping from internal token types to standard token types
is not defined; subclasses can override.
getClosestStandardTokenTypeForInternalType 在接口中 TokenMakertype - The token type.public int getLastTokenTypeOnLine(javax.swing.text.Segment text,
int initialTokenType)
TokenTypes.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
TokenTypes.COMMENT_MULTILINE for that line. This is useful
for doing syntax highlighting.getLastTokenTypeOnLine 在接口中 TokenMakertext - The line of tokens to examine.initialTokenType - The token type to start with (i.e., the value
of getLastTokenTypeOnLine for the line before
text).TokenTypes.NULL
if the line was completed.public OccurrenceMarker getOccurrenceMarker()
null is returned, a default OccurrenceMarker
is used.getOccurrenceMarker 在接口中 TokenMakernull
for none.public boolean isMarkupLanguage()
false always.
Subclasses that are highlighting a markup language should override this
method to return true.isMarkupLanguage 在接口中 TokenMakerfalse always.protected void resetTokenList()
getLastTokenTypeOnLine(Segment, int) or
TokenMaker.getTokenList(Segment, int, int).public void setLanguageIndex(int languageIndex)
languageIndex - The new language index. A value of
0 denotes the "main" language, any positive value
denotes a specific secondary language. Negative values will
be treated as 0.