Parser
in package
JMESPath Pratt parser
Tags
Table of Contents
- $afterDot : array<string|int, mixed>
- $bp : mixed
- $currentNode : mixed
- $expression : mixed
- $lexer : Lexer
- $nullToken : mixed
- $token : mixed
- $tokens : mixed
- $tpos : mixed
- __construct() : mixed
- parse() : array<string|int, mixed>
- Parses a JMESPath expression into an AST
- assertNotToken() : mixed
- expr() : array<string|int, mixed>
- Parses an expression while rbp < lbp.
- led_and() : mixed
- led_comparator() : mixed
- led_dot() : mixed
- led_filter() : mixed
- led_flatten() : mixed
- led_lbracket() : mixed
- led_lparen() : mixed
- led_or() : mixed
- led_pipe() : mixed
- lookahead() : mixed
- next() : mixed
- nud_current() : mixed
- nud_expref() : mixed
- nud_filter() : mixed
- nud_flatten() : mixed
- nud_identifier() : mixed
- nud_lbrace() : mixed
- nud_lbracket() : mixed
- nud_literal() : mixed
- nud_lparen() : mixed
- nud_not() : mixed
- nud_quoted_identifier() : mixed
- nud_star() : mixed
- parseArrayIndexExpression() : mixed
- Parses an array index expression (e.g., [0], [1:2:3]
- parseDot() : mixed
- parseKeyValuePair() : mixed
- parseMultiSelectList() : mixed
- parseProjection() : mixed
- parseWildcardArray() : mixed
- parseWildcardObject() : mixed
- syntax() : mixed
Properties
$afterDot
private
static array<string|int, mixed>
$afterDot
= [
JmesPathLexer::T_IDENTIFIER => true,
// foo.bar
JmesPathLexer::T_QUOTED_IDENTIFIER => true,
// foo."bar"
JmesPathLexer::T_STAR => true,
// foo.*
JmesPathLexer::T_LBRACE => true,
// foo[1]
JmesPathLexer::T_LBRACKET => true,
// foo{a: 0}
JmesPathLexer::T_FILTER => true,
]
Acceptable tokens after a dot token
$bp
private
static mixed
$bp
= [JmesPathLexer::T_EOF => 0, JmesPathLexer::T_QUOTED_IDENTIFIER => 0, JmesPathLexer::T_IDENTIFIER => 0, JmesPathLexer::T_RBRACKET => 0, JmesPathLexer::T_RPAREN => 0, JmesPathLexer::T_COMMA => 0, JmesPathLexer::T_RBRACE => 0, JmesPathLexer::T_NUMBER => 0, JmesPathLexer::T_CURRENT => 0, JmesPathLexer::T_EXPREF => 0, JmesPathLexer::T_COLON => 0, JmesPathLexer::T_PIPE => 1, JmesPathLexer::T_OR => 2, JmesPathLexer::T_AND => 3, JmesPathLexer::T_COMPARATOR => 5, JmesPathLexer::T_FLATTEN => 9, JmesPathLexer::T_STAR => 20, JmesPathLexer::T_FILTER => 21, JmesPathLexer::T_DOT => 40, JmesPathLexer::T_NOT => 45, JmesPathLexer::T_LBRACE => 50, JmesPathLexer::T_LBRACKET => 55, JmesPathLexer::T_LPAREN => 60]
$currentNode
private
static mixed
$currentNode
= ['type' => JmesPathLexer::T_CURRENT]
$expression
private
mixed
$expression
$lexer
private
Lexer
$lexer
$nullToken
private
static mixed
$nullToken
= ['type' => JmesPathLexer::T_EOF]
$token
private
mixed
$token
$tokens
private
mixed
$tokens
$tpos
private
mixed
$tpos
Methods
__construct()
public
__construct([Lexer|null $lexer = null ]) : mixed
Parameters
- $lexer : Lexer|null = null
-
Lexer used to tokenize expressions
Return values
mixed —parse()
Parses a JMESPath expression into an AST
public
parse(string $expression) : array<string|int, mixed>
Parameters
- $expression : string
-
JMESPath expression to compile
Tags
Return values
array<string|int, mixed> —Returns an array based AST
assertNotToken()
private
assertNotToken(mixed $type) : mixed
Parameters
- $type : mixed
Return values
mixed —expr()
Parses an expression while rbp < lbp.
private
expr(int $rbp) : array<string|int, mixed>
Parameters
- $rbp : int
-
Right bound precedence
Return values
array<string|int, mixed> —led_and()
private
led_and(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_comparator()
private
led_comparator(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_dot()
private
led_dot(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_filter()
private
led_filter(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_flatten()
private
led_flatten(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_lbracket()
private
led_lbracket(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_lparen()
private
led_lparen(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_or()
private
led_or(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —led_pipe()
private
led_pipe(array<string|int, mixed> $left) : mixed
Parameters
- $left : array<string|int, mixed>
Return values
mixed —lookahead()
private
lookahead() : mixed
Return values
mixed —next()
private
next([array<string|int, mixed> $match = null ]) : mixed
Parameters
- $match : array<string|int, mixed> = null
Return values
mixed —nud_current()
private
nud_current() : mixed
Return values
mixed —nud_expref()
private
nud_expref() : mixed
Return values
mixed —nud_filter()
private
nud_filter() : mixed
Return values
mixed —nud_flatten()
private
nud_flatten() : mixed
Return values
mixed —nud_identifier()
private
nud_identifier() : mixed
Return values
mixed —nud_lbrace()
private
nud_lbrace() : mixed
Return values
mixed —nud_lbracket()
private
nud_lbracket() : mixed
Return values
mixed —nud_literal()
private
nud_literal() : mixed
Return values
mixed —nud_lparen()
private
nud_lparen() : mixed
Return values
mixed —nud_not()
private
nud_not() : mixed
Return values
mixed —nud_quoted_identifier()
private
nud_quoted_identifier() : mixed
Return values
mixed —nud_star()
private
nud_star() : mixed
Return values
mixed —parseArrayIndexExpression()
Parses an array index expression (e.g., [0], [1:2:3]
private
parseArrayIndexExpression() : mixed
Return values
mixed —parseDot()
private
parseDot(mixed $bp) : mixed
Parameters
- $bp : mixed
Return values
mixed —parseKeyValuePair()
private
parseKeyValuePair() : mixed
Return values
mixed —parseMultiSelectList()
private
parseMultiSelectList() : mixed
Return values
mixed —parseProjection()
private
parseProjection(mixed $bp) : mixed
Parameters
- $bp : mixed
Return values
mixed —parseWildcardArray()
private
parseWildcardArray([array<string|int, mixed> $left = null ]) : mixed
Parameters
- $left : array<string|int, mixed> = null
Return values
mixed —parseWildcardObject()
private
parseWildcardObject([array<string|int, mixed> $left = null ]) : mixed
Parameters
- $left : array<string|int, mixed> = null
Return values
mixed —syntax()
private
syntax(mixed $msg) : mixed
Parameters
- $msg : mixed