class Parser

Parsers a token stream.

This parser implements a "Precedence climbing" algorithm.

Constants

OPERATOR_LEFT

OPERATOR_RIGHT

Methods

__construct(array $functions)

No description

parse(TokenStream $stream, array $names = [])

Converts a token stream to a node tree.

parseExpression($precedence = 0)

No description

getPrimary()

No description

parseConditionalExpression($expr)

No description

parsePrimaryExpression()

No description

parseArrayExpression()

No description

parseHashExpression()

No description

parsePostfixExpression($node)

No description

parseArguments()

Parses arguments.

Details

at line 35
__construct(array $functions)

Parameters

array $functions

at line 95
Node parse(TokenStream $stream, array $names = [])

Converts a token stream to a node tree.

The valid names is an array where the values are the names that the user can use in an expression.

If the variable name in the compiled PHP code must be different, define it as the key.

For instance, ['this' => 'container'] means that the variable 'container' can be used in the expression but the compiled code will use 'this'.

Parameters

TokenStream $stream A token stream instance
array $names An array of valid names

Return Value

Node A node tree

Exceptions

SyntaxError

at line 108
parseExpression($precedence = 0)

Parameters

$precedence

at line 129
protected getPrimary()

at line 152
protected parseConditionalExpression($expr)

Parameters

$expr

at line 176
parsePrimaryExpression()

at line 237
parseArrayExpression()

at line 261
parseHashExpression()

at line 305
parsePostfixExpression($node)

Parameters

$node

at line 365
parseArguments()

Parses arguments.