code: function(){
      var obj = new nodes.Object
        , id, val, comma, hash;
      this.expect('{');
      this.skipWhitespace();
  
      while (!this.accept('}')) {
        if (this.accept('comment')
          || this.accept('newline')) continue;
  
        if (!comma) this.accept(',');
        id = this.accept('ident') || this.accept('string');
  
        if (!id) {
          this.error('expected "ident" or "string", got {peek}');
        }
  
        hash = id.val.hash;
  
        this.skipSpacesAndComments();
        this.expect(':');
  
        val = this.expression();
  
        obj.setValue(hash, val);
        obj.setKey(hash, id.val);
  
        comma = this.accept(',');
        this.skipWhitespace();
      }
  
      return obj;
    }
docs: '{' '}'
  | '{' pair (ws pair)* '}'