code: private function parseVariableDefinition()
      {
          $start = $this->lexer->token;
          $var   = $this->parseVariable();
  
          $this->expect(Token::COLON);
          $type = $this->parseTypeReference();
  
          return new VariableDefinitionNode([
              'variable'     => $var,
              'type'         => $type,
              'defaultValue' =>
                  ($this->skip(Token::EQUALS) ? $this->parseValueLiteral(true) : null),
              'loc'          => $this->loc($start),
          ]);
      }
docs: @return VariableDefinitionNode
  
  @throws SyntaxError