/**
* @return ArrowFunctionExpression|null
*/
private function parseArrow() { $stream =
$this->parser->
getStream();
// short array syntax (one argument, no parentheses)?
if ($stream->
look(1
)->
test(/* Token::ARROW_TYPE */ 12
)) { $line =
$stream->
getCurrent()->
getLine();
$token =
$stream->
expect(/* Token::NAME_TYPE */ 5
);
$names =
[new AssignNameExpression($token->
getValue(),
$token->
getLine())];
$stream->
expect(/* Token::ARROW_TYPE */ 12
);
return new ArrowFunctionExpression($this->
parseExpression(0
),
new Node($names),
$line);
} // first, determine if we are parsing an arrow function by finding => (long form)
$i = 0;
if (!
$stream->
look($i)->
test(/* Token::PUNCTUATION_TYPE */ 9, '('
)) { return null;
} ++
$i;