public interface ILexer extends Iterator<Lexem>
There are 2 ways of extraction provided: iterator and a single call. The implementing class can implement either of the 2 methods. The iterator way is normally more memory-effective, though the single call can be desirable when an existing lexer/tokenizer object is being wrapped around by this interface.
Lexers, implementing this interface, can do the following things:
Example of iterator:
ILexer lexer;
Tokens tokens = new Tokens();
lexer.open("Tokenize me!", tokens);
while (lexer.hasNext())
Lexem lexem = lexer.next();
lexer.close;
Example of a single call:
ILexer lexer;
Tokens tokens = new Tokens();
Lexems lexems = lexer.process("Tokenize me!", tokens);
| Modifier and Type | Method and Description |
|---|---|
void |
cancel()
Cancels the current process.
|
void |
close()
Called after the lexer is done with extracting lexems.
|
LexerRules |
getRules()
Gets the current rules for this lexer.
|
boolean |
hasNext()
Indicates if there is a lexem extracted.
|
void |
init()
Initializes the lexer.
|
Lexem |
next()
Gets the next lexem available.
|
void |
open(String text,
LocaleId language,
Tokens tokens)
Starts processing a string or a list of tokens, extracting lexems from them.
|
Lexems |
process(String text,
LocaleId language,
Tokens tokens)
Alternative non-iterator way of extracting lexems.
|
void |
setRules(LexerRules rules)
Sets new rules for this lexer.
|
forEachRemaining, removevoid init()
LexerRules getRules()
void setRules(LexerRules rules)
rules - The new rules to usevoid open(String text, LocaleId language, Tokens tokens)
text - The string to be processedlanguage - The language of the texttokens - The string to be processedLexems process(String text, LocaleId language, Tokens tokens)
text - The string to be processedlanguage - The language of the texttokens - The string to be processedboolean hasNext()
Lexem next()
void close()
void cancel()
Copyright © 2020. All rights reserved.