code: def t_ANY_STRING(self, t):
          r'\"([^\\"]|(\\.))*\"'
          escaped = 0
          t.lexer.lineno += t.value.count('\n')
          s = t.value[1:-1]
          new_str = ""
          for i in range(0, len(s)):
              c = s[i]
              if escaped:
                  if c == 'n':
                      c = '\n'
                  elif c == 't':
                      c = '\t'
                  new_str += c
                  escaped = 0
              else:
                  if c == '\\':
                      escaped = 1
                  else:
                      new_str += c
          # remove current indentation
          indentation_str = ' ' * _indent_level_to_spaces_count(self.cur_indent)
          lines_without_indentation = [
              line.replace(indentation_str, '', 1)
              for line in new_str.splitlines()]
          t.value = '\n'.join(lines_without_indentation)
          return f t_ANY_STRING(self, t):
          r'\"([^\\"]|(\\.))*\"'
          escaped = 0
          t.lexer.lineno += t.value.count('\n')
          s = t.value[1:-1]
          new_str = ""
          for i in range(0, len(s)):
              c = s[i]
              if escaped:
                  if c == 'n':
                      c = '\n'
                  elif c == 't':
                      c = '\t'
                  new_str += c
                  escaped = 0
              else:
                  if c == '\\':
                      escaped = 1
                  else:
                      new_str += c
          # remove current indentation
          indentation_str = ' ' * _indent_level_to_spaces_count(self.cur_indent)
          lines_without_indentation = [
              line.replace(indentation_str, '', 1)
              for line in new_str.splitlines()]
          t.value = '\n'.join(lines_without_indentation)
          return t
docs: r'\"([^\\"]|(\\.))*\"