code: function() {
      var args = new nodes.Arguments
        , keyword;
  
      do {
        // keyword
        if ('ident' == this.peek().type && ':' == this.lookahead(2).type) {
          keyword = this.next().val.string;
          this.expect(':');
          args.map[keyword] = this.expression();
        // arg
        } else {
          args.push(this.expression());
        }
      } while (this.accept(','));
  
      return args;
    }
docs: (ident ':')? expression (',' (ident ':')? expression)*