Package org.jparsec
Class Terminals.Builder
- java.lang.Object
-
- org.jparsec.Terminals.Builder
-
- Enclosing class:
- Terminals
public final class Terminals.Builder extends java.lang.ObjectBuildsTerminalsinstance 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>keywordsprivate StringCasestringCaseprivate Parser<java.lang.String>wordScannerprivate java.util.function.Function<java.lang.String,?>wordTokenMap
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Terminalsbuild()Builds a newTerminalsinstance that recognizes words defined in this builder.Terminals.BuildercaseInsensitiveKeywords(java.lang.String... keywords)Defines case insensitive keywords.Terminals.BuildercaseInsensitiveKeywords(java.util.Collection<java.lang.String> keywords)Defines case insensitive keywords.Terminals.Builderkeywords(java.lang.String... keywords)Defines keywords.Terminals.Builderkeywords(java.util.Collection<java.lang.String> keywords)Defines keywords.Terminals.BuildertokenizeWordsWith(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
keywordsorcaseInsensitiveKeywords(java.lang.String...)multiple times on the sameTerminals.Builderinstance, 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
keywordsorcaseInsensitiveKeywords(java.lang.String...)multiple times on the sameTerminals.Builderinstance, 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
keywordsorcaseInsensitiveKeywords(java.lang.String...)multiple times on the sameTerminals.Builderinstance, 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
keywordsorcaseInsensitiveKeywords(java.lang.String...)multiple times on the sameTerminals.Builderinstance, 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).
-
-