Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
parsePrimaryExpression example
$node
->
setProperty
(
"meta"
)
;
$object
=
$this
->
completeNode
(
$node
)
;
}
$newTokensCount
=
count
(
$newTokens
)
;
if
(
!
$object
&&
!
(
$object
=
$this
->
parseSuperPropertyOrCall
(
)
)
&&
!
(
$this
->features->dynamicImport
&&
(
$object
=
$this
->
parseImportCall
(
)
)
)
&&
!
(
$object
=
$this
->
parsePrimaryExpression
(
)
)
)
{
if
(
$newTokensCount
)
{
$this
->
error
(
)
;
}
return
null;
}
$valid
= true;
$optionalChain
= false;
$properties
= array
(
)
;
return
$this
->
parsePostfixExpression
(
new
Node\
UnaryNode
(
$token
->value,
$expr
)
)
;
}
if
(
$token
->
test
(
Token::PUNCTUATION_TYPE, '('
)
)
{
$this
->stream->
next
(
)
;
$expr
=
$this
->
parseExpression
(
)
;
$this
->stream->
expect
(
Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed'
)
;
return
$this
->
parsePostfixExpression
(
$expr
)
;
}
return
$this
->
parsePrimaryExpression
(
)
;
}
/** * @return Node\Node */
protected
function
parseConditionalExpression
(
Node\Node
$expr
)
{
while
(
$this
->stream->current->
test
(
Token::PUNCTUATION_TYPE, '??'
)
)
{
$this
->stream->
next
(
)
;
$expr2
=
$this
->
parseExpression
(
)
;
$class
=
$operator
[
'class'
]
;
return
$this
->
parsePostfixExpression
(
new
$class
(
$expr
,
$token
->
getLine
(
)
)
)
;
}
elseif
(
$token
->
test
(
/* Token::PUNCTUATION_TYPE */ 9, '('
)
)
{
$this
->parser->
getStream
(
)
->
next
(
)
;
$expr
=
$this
->
parseExpression
(
)
;
$this
->parser->
getStream
(
)
->
expect
(
/* Token::PUNCTUATION_TYPE */ 9, ')', 'An opened parenthesis is not properly closed'
)
;
return
$this
->
parsePostfixExpression
(
$expr
)
;
}
return
$this
->
parsePrimaryExpression
(
)
;
}
private
function
parseConditionalExpression
(
$expr
)
: AbstractExpression
{
while
(
$this
->parser->
getStream
(
)
->
nextIf
(
/* Token::PUNCTUATION_TYPE */ 9, '?'
)
)
{
if
(
!
$this
->parser->
getStream
(
)
->
nextIf
(
/* Token::PUNCTUATION_TYPE */ 9, ':'
)
)
{
$expr2
=
$this
->
parseExpression
(
)
;
if
(
$this
->parser->
getStream
(
)
->
nextIf
(
/* Token::PUNCTUATION_TYPE */ 9, ':'
)
)
{
$expr3
=
$this
->
parseExpression
(
)
;
}
else
{
$expr3
=
new
ConstantExpression
(
'',
$this
->parser->
getCurrentToken
(
)
->
getLine
(
)
)
;
}