code: function parse_string(delimiter, allow_unescaped_newlines, start_sub) {
                              // Template strings can travers lines without escape characters.
                              // Other strings cannot
                              var current_char;
                              while (input.hasNext()) {
                                  current_char = input.peek();
                                  if (!(esc || current_char !== delimiter && (allow_unescaped_newlines || !acorn.newline.test(current_char)))) {
                                      break;
                                  }
  
                                  // Handle \r\n linebreaks after escapes or in template strings
                                  if ((esc || allow_unescaped_newlines) && acorn.newline.test(current_char)) {
                                      if (current_char === '\r' && input.peek(1) === '\n') {
                                          input.next();
                                          current_char = input.peek();
                                      }
                                      resulting_string += '\n';
                                  } else {
                                      resulting_string += current_char;
                                  }
  
                                  if (esc) {
                                      if (current_char === 'x' || current_char === 'u') {
                                          has_char_escapes = true;
                                      }
                                      esc = false;
                                  } else {
                                      esc = current_char === '\\';
                                  }
  
                                  input.next();
  
                                  if (start_sub && resulting_string.indexOf(start_sub, resulting_string.length - start_sub.length) !== -1) {
                                      if (delimiter === '`') {
                                          parse_string('}', allow_unescaped_newlines, '`');
                                      } else {
                                          parse_string('`', allow_unescaped_newlines, '${');
                                      }
  
                                      if (input.hasNext()) {
                                          resulting_string += input.next();
                                      }
                                  }
                              }
                          }
docs: handle string