Package org.apache.calcite.util
Class PrecedenceClimbingParser
- java.lang.Object
-
- org.apache.calcite.util.PrecedenceClimbingParser
-
public class PrecedenceClimbingParser extends java.lang.Object
Parser that takes a collection of tokens (atoms and operators) and groups them together according to the operators' precedence and associativity.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PrecedenceClimbingParser.Builder
Fluent helper to build a parser containing a list of tokens.static class
PrecedenceClimbingParser.Call
A token that is a call to an operator with arguments.static class
PrecedenceClimbingParser.Op
An operator token.static class
PrecedenceClimbingParser.Result
static interface
PrecedenceClimbingParser.Special
Callback defining the behavior of a special function.static class
PrecedenceClimbingParser.SpecialOp
An token corresponding to a special operator.static class
PrecedenceClimbingParser.Token
A token: either an atom, a call to an operator with arguments, or an unmatched operator.private class
PrecedenceClimbingParser.TokenList
List view onto the tokens in a parser.static class
PrecedenceClimbingParser.Type
Token type.
-
Field Summary
Fields Modifier and Type Field Description private PrecedenceClimbingParser.Token
first
private PrecedenceClimbingParser.Token
last
-
Constructor Summary
Constructors Modifier Constructor Description private
PrecedenceClimbingParser(java.util.List<PrecedenceClimbingParser.Token> tokens)
-
Method Summary
-
-
-
Field Detail
-
first
private PrecedenceClimbingParser.Token first
-
last
private PrecedenceClimbingParser.Token last
-
-
Constructor Detail
-
PrecedenceClimbingParser
private PrecedenceClimbingParser(java.util.List<PrecedenceClimbingParser.Token> tokens)
-
-
Method Detail
-
atom
public PrecedenceClimbingParser.Token atom(java.lang.Object o)
-
call
public PrecedenceClimbingParser.Call call(PrecedenceClimbingParser.Op op, com.google.common.collect.ImmutableList<PrecedenceClimbingParser.Token> args)
-
infix
public PrecedenceClimbingParser.Op infix(java.lang.Object o, int precedence, boolean left)
-
prefix
public PrecedenceClimbingParser.Op prefix(java.lang.Object o, int precedence)
-
postfix
public PrecedenceClimbingParser.Op postfix(java.lang.Object o, int precedence)
-
special
public PrecedenceClimbingParser.SpecialOp special(java.lang.Object o, int leftPrec, int rightPrec, PrecedenceClimbingParser.Special special)
-
parse
public PrecedenceClimbingParser.Token parse()
-
partialParse
public void partialParse()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
all
public java.util.List<PrecedenceClimbingParser.Token> all()
Returns a list of all tokens.
-
replace
private void replace(PrecedenceClimbingParser.Token t, PrecedenceClimbingParser.Token previous, PrecedenceClimbingParser.Token next)
-
highest
private PrecedenceClimbingParser.Op highest()
-
prevRight
private int prevRight(PrecedenceClimbingParser.Token token)
Returns the right precedence of the preceding operator token.
-
nextLeft
private int nextLeft(PrecedenceClimbingParser.Token token)
Returns the left precedence of the following operator token.
-
print
public java.lang.String print(PrecedenceClimbingParser.Token token)
-
copy
public PrecedenceClimbingParser copy(int start, java.util.function.Predicate<PrecedenceClimbingParser.Token> predicate)
-
-