TreeCompiler
in package
Tree visitor used to compile JMESPath expressions into native PHP code.
Table of Contents
- $indentation : mixed
- $source : mixed
- $vars : mixed
- visit() : string
- dispatch() : mixed
- indent() : $this
- Increases the indentation level of code being written
- makeVar() : string
- Creates a monotonically incrementing unique variable name by prefix.
- outdent() : $this
- Decreases the indentation level of code being written
- visit_and() : mixed
- visit_comparator() : mixed
- visit_condition() : mixed
- visit_current() : mixed
- visit_expref() : mixed
- visit_field() : mixed
- visit_flatten() : mixed
- visit_function() : mixed
- visit_index() : mixed
- visit_literal() : mixed
- visit_multi_select_hash() : mixed
- visit_multi_select_list() : mixed
- visit_not() : mixed
- visit_or() : mixed
- visit_pipe() : mixed
- visit_projection() : mixed
- visit_slice() : mixed
- visit_subexpression() : mixed
- write() : $this
- Writes the given line of source code. Pass positional arguments to write that match the format of sprintf.
Properties
$indentation
private
mixed
$indentation
$source
private
mixed
$source
$vars
private
mixed
$vars
Methods
visit()
public
visit(array<string|int, mixed> $ast, string $fnName, string $expr) : string
Parameters
- $ast : array<string|int, mixed>
-
AST to compile.
- $fnName : string
-
The name of the function to generate.
- $expr : string
-
Expression being compiled.
Return values
string —dispatch()
private
dispatch(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —indent()
Increases the indentation level of code being written
private
indent() : $this
Return values
$this —makeVar()
Creates a monotonically incrementing unique variable name by prefix.
private
makeVar(string $prefix) : string
Parameters
- $prefix : string
-
Variable name prefix
Return values
string —outdent()
Decreases the indentation level of code being written
private
outdent() : $this
Return values
$this —visit_and()
private
visit_and(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_comparator()
private
visit_comparator(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_condition()
private
visit_condition(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_current()
private
visit_current(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_expref()
private
visit_expref(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_field()
private
visit_field(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_flatten()
private
visit_flatten(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_function()
private
visit_function(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_index()
private
visit_index(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_literal()
private
visit_literal(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_multi_select_hash()
private
visit_multi_select_hash(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_multi_select_list()
private
visit_multi_select_list(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_not()
private
visit_not(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_or()
private
visit_or(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_pipe()
private
visit_pipe(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_projection()
private
visit_projection(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_slice()
private
visit_slice(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —visit_subexpression()
private
visit_subexpression(array<string|int, mixed> $node) : mixed
Parameters
- $node : array<string|int, mixed>
Return values
mixed —write()
Writes the given line of source code. Pass positional arguments to write that match the format of sprintf.
private
write(string $str) : $this
Parameters
- $str : string
-
String to write