Package org.jparsec
Class Terminals.Builder
- java.lang.Object
-
- org.jparsec.Terminals.Builder
-
- Enclosing class:
- Terminals
public final class Terminals.Builder extends java.lang.Object
BuildsTerminals
instance by defining the words and keywords recognized. The following example implements a calculator with logical operators:Terminals terms = Terminals .operators("<", ">", "=", ">=", "<=") .words(Scanners.IDENTIFIER) .caseInsensitiveKeywords("and", "or") .build(); Parser<String> var = Terminals.identifier(); Parser<Integer> integer = Terminals.IntegerLiteral.PARSER.map(...); Parser<?> and = terms.token("and"); Parser<?> lessThan = terms.token("<"); ... Parser<?> parser = grammar.from( terms.tokenizer().or(IntegerLiteral.TOKENIZER), Scanners.WHITSPACES.optional());
- Since:
- 2.2
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection<java.lang.String>
keywords
private StringCase
stringCase
private Parser<java.lang.String>
wordScanner
private java.util.function.Function<java.lang.String,?>
wordTokenMap
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Terminals
build()
Builds a newTerminals
instance that recognizes words defined in this builder.Terminals.Builder
caseInsensitiveKeywords(java.lang.String... keywords)
Defines case insensitive keywords.Terminals.Builder
caseInsensitiveKeywords(java.util.Collection<java.lang.String> keywords)
Defines case insensitive keywords.Terminals.Builder
keywords(java.lang.String... keywords)
Defines keywords.Terminals.Builder
keywords(java.util.Collection<java.lang.String> keywords)
Defines keywords.Terminals.Builder
tokenizeWordsWith(java.util.function.Function<java.lang.String,?> wordMap)
Configures alternative tokenization strategy for words (except keywords).
-
-
-
Field Detail
-
wordScanner
private final Parser<java.lang.String> wordScanner
-
keywords
private java.util.Collection<java.lang.String> keywords
-
stringCase
private StringCase stringCase
-
wordTokenMap
private java.util.function.Function<java.lang.String,?> wordTokenMap
-
-
Constructor Detail
-
Builder
Builder(Parser<java.lang.String> wordScanner)
-
-
Method Detail
-
keywords
public Terminals.Builder keywords(java.lang.String... keywords)
Defines keywords. Keywords are special words with their own grammar rules. To get the parser for a keyword, calltoken(keyword)
.Note that if you call
keywords
orcaseInsensitiveKeywords(java.lang.String...)
multiple times on the sameTerminals.Builder
instance, the last call overwrites previous calls.
-
keywords
public Terminals.Builder keywords(java.util.Collection<java.lang.String> keywords)
Defines keywords. Keywords are special words with their own grammar rules. To get the parser for a keyword, calltoken(keyword)
.Note that if you call
keywords
orcaseInsensitiveKeywords(java.lang.String...)
multiple times on the sameTerminals.Builder
instance, the last call overwrites previous calls.
-
caseInsensitiveKeywords
public Terminals.Builder caseInsensitiveKeywords(java.lang.String... keywords)
Defines case insensitive keywords. Keywords are special words with their own grammar rules. To get the parser for a keyword, calltoken(keyword)
.Note that if you call
keywords
orcaseInsensitiveKeywords(java.lang.String...)
multiple times on the sameTerminals.Builder
instance, the last call overwrites previous calls.
-
caseInsensitiveKeywords
public Terminals.Builder caseInsensitiveKeywords(java.util.Collection<java.lang.String> keywords)
Defines case insensitive keywords. Keywords are special words with their own grammar rules. To get the parser for a keyword, calltoken(keyword)
.Note that if you call
keywords
orcaseInsensitiveKeywords(java.lang.String...)
multiple times on the sameTerminals.Builder
instance, the last call overwrites previous calls.
-
tokenizeWordsWith
public Terminals.Builder tokenizeWordsWith(java.util.function.Function<java.lang.String,?> wordMap)
Configures alternative tokenization strategy for words (except keywords).
-
-