function Parser::parsePrimaryExpression
Parses a primary expression
Return value
Node\Node|null
1 call to Parser::parsePrimaryExpression()
- Parser::parseLeftHandSideExpression in vendor/
mck89/ peast/ lib/ Peast/ Syntax/ Parser.php - Parses a left hand side expression
File
-
vendor/
mck89/ peast/ lib/ Peast/ Syntax/ Parser.php, line 3683
Class
- Parser
- Parser class
Namespace
Peast\SyntaxCode
protected function parsePrimaryExpression() {
if ($token = $this->scanner
->consume("this")) {
$node = $this->createNode("ThisExpression", $token);
return $this->completeNode($node);
}
elseif ($exp = $this->parseFunctionOrGeneratorExpression()) {
return $exp;
}
elseif ($exp = $this->parseClassExpression()) {
return $exp;
}
elseif ($exp = $this->parseIdentifier(static::$identifierReference)) {
return $exp;
}
elseif ($exp = $this->parseLiteral()) {
return $exp;
}
elseif ($exp = $this->parseArrayLiteral()) {
return $exp;
}
elseif ($exp = $this->parseObjectLiteral()) {
return $exp;
}
elseif ($exp = $this->parseRegularExpressionLiteral()) {
return $exp;
}
elseif ($exp = $this->parseTemplateLiteral()) {
return $exp;
}
elseif ($this->jsx && ($exp = $this->parseJSXFragment())) {
return $exp;
}
elseif ($this->jsx && ($exp = $this->parseJSXElement())) {
return $exp;
}
elseif ($token = $this->scanner
->consume("(")) {
if (($exp = $this->isolateContext(array(
"allowIn" => true,
), "parseExpression")) && $this->scanner
->consume(")")) {
$node = $this->createNode("ParenthesizedExpression", $token);
$node->setExpression($exp);
return $this->completeNode($node);
}
$this->error();
}
return null;
}