public final class Terminals.Builder extends Object
Terminals
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());
Modifier and Type | Method and Description |
---|---|
Terminals |
build()
Builds a new
Terminals instance that recognizes words defined in this builder. |
Terminals.Builder |
caseInsensitiveKeywords(Collection<String> keywords)
Defines case insensitive keywords.
|
Terminals.Builder |
caseInsensitiveKeywords(String... keywords)
Defines case insensitive keywords.
|
Terminals.Builder |
keywords(Collection<String> keywords)
Defines keywords.
|
Terminals.Builder |
keywords(String... keywords)
Defines keywords.
|
Terminals.Builder |
tokenizeWordsWith(java.util.function.Function<String,?> wordMap)
Configures alternative tokenization strategy for words (except keywords).
|
public Terminals.Builder keywords(String... keywords)
token(keyword)
.
Note that if you call keywords
or caseInsensitiveKeywords(java.lang.String...)
multiple
times on the same Terminals.Builder
instance, the last call overwrites previous calls.
public Terminals.Builder keywords(Collection<String> keywords)
token(keyword)
.
Note that if you call keywords
or caseInsensitiveKeywords(java.lang.String...)
multiple
times on the same Terminals.Builder
instance, the last call overwrites previous calls.
public Terminals.Builder caseInsensitiveKeywords(String... keywords)
token(keyword)
.
Note that if you call keywords
or caseInsensitiveKeywords(java.lang.String...)
multiple
times on the same Terminals.Builder
instance, the last call overwrites previous calls.
public Terminals.Builder caseInsensitiveKeywords(Collection<String> keywords)
token(keyword)
.
Note that if you call keywords
or caseInsensitiveKeywords(java.lang.String...)
multiple
times on the same Terminals.Builder
instance, the last call overwrites previous calls.
public Terminals.Builder tokenizeWordsWith(java.util.function.Function<String,?> wordMap)
Copyright © 2013–2016 jparsec. All rights reserved.