public class ConfigurableParser extends java.lang.Object implements Parser
Modifier and Type | Field and Description |
---|---|
protected java.util.List<TokenFilter> |
filters |
protected java.util.List<GrammarMatcher> |
g |
protected GrammarParserFactory |
gpf |
protected Jep |
jep |
protected java.util.List<TokenMatcher> |
m |
protected OperatorTokenMatcher |
otm |
protected SymbolTokenMatcher |
stm |
protected TokenizerFactory |
tf |
protected Tokenizer |
tk |
Constructor and Description |
---|
ConfigurableParser()
Create a configurable parser with no matchers set.
|
Modifier and Type | Method and Description |
---|---|
GrammarMatcher |
addArrayAccessMatcher(java.lang.String open,
java.lang.String close)
Matches array access: a[3]
|
GrammarMatcher |
addBracketMatcher(java.lang.String open,
java.lang.String close)
Matches bracketed expressions: (2+3).
|
TokenMatcher |
addDoubleQuoteStrings()
Recognize double quote strings "...".
|
TokenMatcher |
addExponentNumbers()
Recognize numbers with optional exponents, 1.2e3, 1.2E-3, 1.2, 1.
|
GrammarMatcher |
addFunctionMatcher(java.lang.String open,
java.lang.String close,
java.lang.String sep)
Matches functions: atan2(y,x).
|
GrammarMatcher |
addGrammarMatcher(GrammarMatcher gm)
Adds a GrammarMatcher
|
TokenMatcher |
addHashComments()
Recognize comments of the form #....
|
TokenMatcher |
addIdentifiers()
Adds java-style function and variable names.
|
GrammarMatcher |
addListMatcher(java.lang.String open,
java.lang.String close,
java.lang.String sep)
Matches vectors/list: [1,2,3]
|
GrammarMatcher |
addListOrBracketMatcher(java.lang.String open,
java.lang.String close,
java.lang.String sep)
Matches bracketed expressions or lists depending on number of arguments.
|
TokenMatcher |
addOperatorTokenMatcher()
Recognize operators.
|
TokenMatcher |
addSemiColonTerminator()
Adds a matcher which will terminate the parsing process when a semi-colon is encountered.
|
TokenMatcher |
addSimpleNumbers()
Recognize numbers without exponents 1.2.
|
TokenMatcher |
addSingleQuoteStrings()
Recognize single quote strings '...'.
|
void |
addSlashComments()
Recognize comments of the form //...
|
TokenMatcher |
addSymbols(java.lang.String... symbols)
Recognize given set of symbols.
|
TokenFilter |
addTokenFilter(TokenFilter tf1)
Adds a TokenFilter.
|
TokenMatcher |
addTokenMatcher(TokenMatcher tm)
Adds a TokenMatcher.
|
TokenMatcher |
addWhiteSpace()
Recognize java white space characters.
|
TokenFilter |
addWhiteSpaceCommentFilter()
Filter out whitespace and comments between the tokenizing and grammar matching stages.
|
Node |
continueParse()
Parse the next expressions from existing stream.
|
java.util.Iterator<Token> |
filter(java.util.List<Token> input)
Filters the tokens to remove whitespace etc.
|
java.util.List<GrammarMatcher> |
getGrammarMatchers()
Return the list of GrammarMatchers.
|
GrammarParserFactory |
getGrammarParserFactory()
Factory used to create GrammarParsers
|
Jep |
getJep()
The Jep instance used by the parser
|
JepComponent |
getLightWeightInstance()
Returns a light weight instance, suitable for use in multiple evaluation threads.
|
TokenMatcher |
getOperatorTokenMatcher()
Return the OperatorTokenMatcher.
|
SymbolToken |
getSymbolToken(java.lang.String sym)
Return the SymbolToken for the given string.
|
SymbolTokenMatcher |
getSymbolTokenMatcher()
Return the SymbolTokenMatcher.
|
java.util.List<TokenFilter> |
getTokenFilters()
Return the list of filters.
|
TokenizerFactory |
getTokenizerFactory()
The factory used to create Tokenizers
|
java.util.List<TokenMatcher> |
getTokenMatchers()
Return the list of TokenMatchers
|
void |
init(Jep jep1)
Initialize the component.
|
Node |
parse(java.util.Iterator<Token> it)
Perform the syntax analysis stage.
|
Node |
parse(java.io.Reader stream)
Parse a single equation.
|
void |
restart(java.io.Reader stream)
Load a new stream to read from.
|
java.util.List<Token> |
scan()
Scan next equations from an existing stream.
|
java.util.List<Token> |
scan(java.io.Reader stream)
Scan the input.
|
void |
setGrammarParserFactory(GrammarParserFactory gpf)
Sets the GrammarParserFactory
|
void |
setImplicitMultiplicationSymbols(java.lang.String... symbols)
Sets those symbols which can appear on the right hand side of implicit multiplication.
|
void |
setTokenizerFactory(TokenizerFactory tf)
Sets the TokenizerFactory used to create Tokenizers.
|
protected java.util.List<TokenMatcher> m
protected java.util.List<TokenFilter> filters
protected java.util.List<GrammarMatcher> g
protected transient Tokenizer tk
protected transient Jep jep
protected OperatorTokenMatcher otm
protected SymbolTokenMatcher stm
protected GrammarParserFactory gpf
protected TokenizerFactory tf
public ConfigurableParser()
public void init(Jep jep1)
JepComponent
init
in interface JepComponent
jep1
- the current Jep instancepublic Node parse(java.io.Reader stream) throws ParseException
parse
in interface Parser
stream
- the input stream to read fromParseException
- if there is a syntax error in the input or an empty expressionpublic void restart(java.io.Reader stream)
restart
in interface Parser
stream
- input streamcontinueParse()
public Node continueParse() throws ParseException
continueParse
in interface Parser
ParseException
- if there is a syntax error in the inputrestart(java.io.Reader)
public java.util.List<Token> scan(java.io.Reader stream) throws ParseException
stream
- inputParseException
- if there is a syntax error in the inputpublic java.util.List<Token> scan() throws ParseException
ParseException
- if there is a syntax error in the inputpublic java.util.Iterator<Token> filter(java.util.List<Token> input) throws ParseException
input
- list of tokensParseException
- if there is a syntax error in the inputpublic Node parse(java.util.Iterator<Token> it) throws ParseException
it
- an iterator with a list of tokensParseException
- if there is a gramatical error in the inputpublic JepComponent getLightWeightInstance()
getLightWeightInstance
in interface JepComponent
public TokenMatcher addTokenMatcher(TokenMatcher tm)
tm
- the TokenMatcher to addpublic java.util.List<TokenMatcher> getTokenMatchers()
public GrammarMatcher addGrammarMatcher(GrammarMatcher gm)
gm
- the GrammarMatcher to addpublic java.util.List<GrammarMatcher> getGrammarMatchers()
public TokenMatcher addHashComments()
public void addSlashComments()
public TokenMatcher addDoubleQuoteStrings()
public TokenMatcher addSingleQuoteStrings()
public TokenMatcher addWhiteSpace()
public TokenFilter addWhiteSpaceCommentFilter()
public TokenMatcher addExponentNumbers()
public TokenMatcher addSimpleNumbers()
public TokenMatcher addOperatorTokenMatcher()
public TokenMatcher getOperatorTokenMatcher()
public TokenMatcher addSymbols(java.lang.String... symbols)
symbols
- one or more string for the symbols.public SymbolTokenMatcher getSymbolTokenMatcher()
public SymbolToken getSymbolToken(java.lang.String sym)
sym
- string representing the symbol.public void setImplicitMultiplicationSymbols(java.lang.String... symbols)
symbols
- one or more string for the symbols.public TokenMatcher addIdentifiers()
public TokenMatcher addSemiColonTerminator()
public GrammarMatcher addBracketMatcher(java.lang.String open, java.lang.String close)
open
- symbol for opening braceclose
- symbol for closing bracepublic GrammarMatcher addFunctionMatcher(java.lang.String open, java.lang.String close, java.lang.String sep)
open
- symbol for opening braceclose
- symbol for closing bracesep
- symbol for argument separatorpublic GrammarMatcher addListMatcher(java.lang.String open, java.lang.String close, java.lang.String sep)
open
- symbol for opening braceclose
- symbol for closing bracesep
- symbol for argument separatorpublic GrammarMatcher addArrayAccessMatcher(java.lang.String open, java.lang.String close)
open
- symbol for opening braceclose
- symbol for closing bracepublic GrammarMatcher addListOrBracketMatcher(java.lang.String open, java.lang.String close, java.lang.String sep)
open
- symbol for opening braceclose
- symbol for closing bracesep
- symbol for argument separatorpublic Jep getJep()
public TokenizerFactory getTokenizerFactory()
public void setTokenizerFactory(TokenizerFactory tf)
tf
- factory to usepublic TokenFilter addTokenFilter(TokenFilter tf1)
tf1
- the TokenFilter to addpublic java.util.List<TokenFilter> getTokenFilters()
public GrammarParserFactory getGrammarParserFactory()
public void setGrammarParserFactory(GrammarParserFactory gpf)
gpf
- the factoryCopyright © 2018 Singular Systems http://www.singularsys.com/jep