code: function() {
      // Single line
      if ('/' == this.str[0] && '/' == this.str[1]) {
        var end = this.str.indexOf('\n');
        if (-1 == end) end = this.str.length;
        this.skip(end);
        return this.advance();
      }
  
      // Multi-line
      if ('/' == this.str[0] && '*' == this.str[1]) {
        var end = this.str.indexOf('*/');
        if (-1 == end) end = this.str.length;
        var str = this.str.substr(0, end + 2)
          , lines = str.split(/\n|\r/).length - 1
          , suppress = true
          , inline = false;
        this.lineno += lines;
        this.skip(end + 2);
        // output
        if ('!' == str[2]) {
          str = str.replace('*!', '*');
          suppress = false;
        }
        if (this.prev && ';' == this.prev.type) inline = true;
        return new Token('comment', new nodes.Comment(str, suppress, inline));
      }
    }
docs: '//' *