function parseDocument()
{
$start = $this->lexer->token;
$this->expect(Token::SOF);
$definitions = [];
do {
$definitions[] = $this->parseDefinition();
} while (!$this->skip(Token::EOF));
return new DocumentNode(['definitions' => $definitions, 'loc' => $this->loc($start)]);
}