code: func (p *Parser) objectType() (*ast.ObjectType, error) {
  	defer un(trace(p, "ParseObjectType"))
  
  	// we assume that the currently scanned token is a LBRACE
  	o := &ast.ObjectType{}
  
  	l, err := p.objectList()
  
  	// if we hit RBRACE, we are good to go (means we parsed all Items), if it's
  	// not a RBRACE, it's an syntax error and we just return it.
  	if err != nil && p.tok.Type != token.RBRACE {
  		return nil, err
  	}
  
  	o.List = l
  	return o, nil
  }
docs: // objectType parses an object type and returns a ObjectType AST