Package org.apache.camel.language.simple
Class BaseSimpleParser
java.lang.Object
org.apache.camel.language.simple.BaseSimpleParser
- Direct Known Subclasses:
SimpleExpressionParser,SimplePredicateParser
Base class for Simple language parser.
This parser is based on the principles of a recursive
descent parser.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected final org.apache.camel.CamelContextprotected final Stringprotected intprotected final List<SimpleNode> protected intprotected SimpleTokenprotected final List<SimpleToken> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseSimpleParser(org.apache.camel.CamelContext camelContext, String expression, boolean allowEscape) -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanAccept the given token.protected voidclear()Clears the parser state, which means it can be used for parsing a new input.protected voidExpect a given tokenprotected voidexpectAndAcceptMore(TokenType expect) Expect and accept a given number of tokens in sequence.protected voidAdvances the parser position to the next knownSimpleTokenin the input.protected voidAdvances the parser position to the next knownSimpleTokenin the input.protected voidPrepares blocks, such as functions, single or double quoted texts.protected voidPrepares unary expressions.
-
Field Details
-
camelContext
protected final org.apache.camel.CamelContext camelContext -
expression
-
tokens
-
nodes
-
token
-
previousIndex
protected int previousIndex -
index
protected int index -
allowEscape
protected final boolean allowEscape
-
-
Constructor Details
-
BaseSimpleParser
protected BaseSimpleParser(org.apache.camel.CamelContext camelContext, String expression, boolean allowEscape)
-
-
Method Details
-
nextToken
protected void nextToken()Advances the parser position to the next knownSimpleTokenin the input. -
nextToken
Advances the parser position to the next knownSimpleTokenin the input.- Parameters:
filter- filter for accepted token types
-
clear
protected void clear()Clears the parser state, which means it can be used for parsing a new input. -
prepareBlocks
protected void prepareBlocks()Prepares blocks, such as functions, single or double quoted texts. This process prepares theBlocks in the AST. This is done by linking childnodeswhich are within the start and end of the blocks, as child to the given block. This is done to have the AST graph updated and prepared properly. So when the AST node is later used to create thePredicates orExpressions to be used by Camel then the AST graph has a linked and prepared graph of nodes which represent the input expression. -
prepareUnaryExpressions
protected void prepareUnaryExpressions()Prepares unary expressions. This process prepares the unary expressions in the AST. This is done by linking the unary operator with the left hand side node, to have the AST graph updated and prepared properly. So when the AST node is later used to create thePredicates orExpressions to be used by Camel then the AST graph has a linked and prepared graph of nodes which represent the input expression. -
accept
Accept the given token. This is to be used by the grammar to accept tokens and then continue parsing using the grammar, such as a function grammar.- Parameters:
accept- the token- Returns:
- true if accepted, false otherwise.
-
expect
Expect a given token- Parameters:
expect- the token to expect- Throws:
SimpleParserException- is thrown if the token is not as expected
-
expectAndAcceptMore
Expect and accept a given number of tokens in sequence. This is used to accept whitespace or string literals.- Parameters:
expect- the token to accept
-