ExpressionParser
in package
Parses expressions.
This parser implements a "Precedence climbing" algorithm.
Tags
Table of Contents
Constants
- OPERATOR_LEFT = 1
- OPERATOR_RIGHT = 2
Properties
- $binaryOperators : array<string, AbstractBinary>, associativity: self::OPERATOR_*}>
- $env : mixed
- $parser : mixed
- $unaryOperators : array<string, AbstractUnary>}>
Methods
- __construct() : mixed
- getFunctionNode() : mixed
- parseArguments() : Node
- Parses arguments.
- parseArrayExpression() : mixed
- parseAssignmentExpression() : mixed
- parseExpression() : mixed
- parseFilterExpression() : mixed
- parseFilterExpressionRaw() : mixed
- parseHashExpression() : mixed
- parseMultitargetExpression() : mixed
- parsePostfixExpression() : mixed
- parsePrimaryExpression() : mixed
- parseStringExpression() : mixed
- parseSubscriptExpression() : mixed
- checkConstantExpression() : bool
- getFilterNodeClass() : string
- getFunctionNodeClass() : string
- getPrimary() : AbstractExpression
- getTest() : array<string|int, mixed>
- getTestNodeClass() : string
- isBinary() : bool
- isUnary() : bool
- parseArrow() : ArrowFunctionExpression|null
- parseConditionalExpression() : AbstractExpression
- parseNotTestExpression() : NotUnary
- parseTestExpression() : TestExpression
Constants
OPERATOR_LEFT
public
mixed
OPERATOR_LEFT
= 1
OPERATOR_RIGHT
public
mixed
OPERATOR_RIGHT
= 2
Properties
$binaryOperators
private
array<string, AbstractBinary>, associativity: self::OPERATOR_*}>
$binaryOperators
$env
private
mixed
$env
$parser
private
mixed
$parser
$unaryOperators
private
array<string, AbstractUnary>}>
$unaryOperators
Methods
__construct()
public
__construct(Parser $parser, Environment $env) : mixed
Parameters
- $parser : Parser
- $env : Environment
getFunctionNode()
public
getFunctionNode(mixed $name, mixed $line) : mixed
Parameters
- $name : mixed
- $line : mixed
parseArguments()
Parses arguments.
public
parseArguments([bool $namedArguments = false ][, bool $definition = false ][, mixed $allowArrow = false ]) : Node
Parameters
- $namedArguments : bool = false
-
Whether to allow named arguments or not
- $definition : bool = false
-
Whether we are parsing arguments for a function definition
- $allowArrow : mixed = false
Tags
Return values
NodeparseArrayExpression()
public
parseArrayExpression() : mixed
parseAssignmentExpression()
public
parseAssignmentExpression() : mixed
parseExpression()
public
parseExpression([mixed $precedence = 0 ][, mixed $allowArrow = false ]) : mixed
Parameters
- $precedence : mixed = 0
- $allowArrow : mixed = false
parseFilterExpression()
public
parseFilterExpression(mixed $node) : mixed
Parameters
- $node : mixed
parseFilterExpressionRaw()
public
parseFilterExpressionRaw(mixed $node[, mixed $tag = null ]) : mixed
Parameters
- $node : mixed
- $tag : mixed = null
parseHashExpression()
public
parseHashExpression() : mixed
parseMultitargetExpression()
public
parseMultitargetExpression() : mixed
parsePostfixExpression()
public
parsePostfixExpression(mixed $node) : mixed
Parameters
- $node : mixed
parsePrimaryExpression()
public
parsePrimaryExpression() : mixed
parseStringExpression()
public
parseStringExpression() : mixed
parseSubscriptExpression()
public
parseSubscriptExpression(mixed $node) : mixed
Parameters
- $node : mixed
checkConstantExpression()
private
checkConstantExpression(Node $node) : bool
Parameters
- $node : Node
Return values
boolgetFilterNodeClass()
private
getFilterNodeClass(string $name, int $line) : string
Parameters
- $name : string
- $line : int
Return values
stringgetFunctionNodeClass()
private
getFunctionNodeClass(string $name, int $line) : string
Parameters
- $name : string
- $line : int
Return values
stringgetPrimary()
private
getPrimary() : AbstractExpression
Return values
AbstractExpressiongetTest()
private
getTest(int $line) : array<string|int, mixed>
Parameters
- $line : int
Return values
array<string|int, mixed>getTestNodeClass()
private
getTestNodeClass(TwigTest $test) : string
Parameters
- $test : TwigTest
Return values
stringisBinary()
private
isBinary(Token $token) : bool
Parameters
- $token : Token
Return values
boolisUnary()
private
isUnary(Token $token) : bool
Parameters
- $token : Token
Return values
boolparseArrow()
private
parseArrow() : ArrowFunctionExpression|null
Return values
ArrowFunctionExpression|nullparseConditionalExpression()
private
parseConditionalExpression(mixed $expr) : AbstractExpression
Parameters
- $expr : mixed
Return values
AbstractExpressionparseNotTestExpression()
private
parseNotTestExpression(Node $node) : NotUnary
Parameters
- $node : Node
Return values
NotUnaryparseTestExpression()
private
parseTestExpression(Node $node) : TestExpression
Parameters
- $node : Node