code: function() {
      var op
        , node;
      if (op =
           this.accept('!')
        || this.accept('~')
        || this.accept('+')
        || this.accept('-')) {
        this.operand = true;
        node = this.unary();
        if (!node) this.error('illegal unary "' + op + '"');
        node = new nodes.UnaryOp(op.type, node);
        this.operand = false;
        return node;
      }
      return this.subscript();
    }
docs: ('!' | '~' | '+' | '-') unary
  | subscript