docs: function() {
      var captures;
      if (captures = /^(!?=|-)[ \t]*([^\n]+)/.exec(this.input)) {
        var flags = captures[1];
        var code = captures[2];
        var shortened = 0;
        if (this.interpolated) {
          var parsed;
          try {
            parsed = characterParser.parseUntil(code, ']');
          } catch (err) {
            if (err.index !== undefined) {
              this.incrementColumn(captures[0].length - code.length + err.index);
            }
            if (err.code === 'CHARACTER_PARSER:END_OF_STRING_REACHED') {
              this.error('NO_END_BRACKET', 'End of line was reached with no closing bracket for interpolation.');
            } else if (err.code === 'CHARACTER_PARSER:MISMATCHED_BRACKET') {
              this.error('BRACKET_MISMATCH', err.message);
            } else {
              throw err;
            }
          }
          shortened = code.length - parsed.end;
          code = parsed.src;
        }
        var consumed = captures[0].length - shortened;
        this.consume(consumed);
        var tok = this.tok('code', code);
        tok.mustEscape = flags.charAt(0) === '=';
        tok.buffer = flags.charAt(0) === '=' || flags.charAt(1) === '=';
  
        // p #[!=    abc] hey
        //     ^              original colno
        //     -------------- captures[0]
        //           -------- captures[2]
        //     ------         captures[0] - captures[2]
        //           ^        after colno
  
        // =   abc
        // ^                  original colno
        // -------            captures[0]
        //     ---            captures[2]
        // ----               captures[0] - captures[2]
        //     ^              after colno
        this.incrementColumn(captures[0].length - captures[2].length);
        if (tok.buffer) this.assertExpression(code);
        this.tokens.push(tok);
  
        // p #[!=    abc] hey
        //           ^        original colno
        //              ----- shortened
        //           ---      code
        //              ^     after colno
  
        // =   abc
        //     ^              original colno
        //                    shortened
        //     ---            code
        //        ^           after colno
        this.incrementColumn(code.length);
        return true;
      }
    }