code: def charseq():
      '''Parse string. (normal string and escaped string)'''
      def string_part():
          '''Parse normal string.'''
          return regex(r'[^"\\]+')
  
      def string_esc():
          '''Parse escaped string.'''
          return string('\\') >> (
              string('\\')
              | string('/')
              | string('"')
              | string('b').result('\b')
              | string('f').result('\f')
              | string('n').result('\n')
              | string('r').result('\r')
              | string('t').result('\t')
              | regex(r'u[0-9a-fA-F]{4}').parsecmap(lambda s: chr(int(s[1:], 16)))
          )
      return string_part() | string_esc(f charseq():
      '''Parse string. (normal string and escaped string)'''
      def string_part():
          '''Parse normal string.'''
          return regex(r'[^"\\]+')
  
      def string_esc():
          '''Parse escaped string.'''
          return string('\\') >> (
              string('\\')
              | string('/')
              | string('"')
              | string('b').result('\b')
              | string('f').result('\f')
              | string('n').result('\n')
              | string('r').result('\r')
              | string('t').result('\t')
              | regex(r'u[0-9a-fA-F]{4}').parsecmap(lambda s: chr(int(s[1:], 16)))
          )
      return string_part() | string_esc()
docs: Parse string. (normal string and escaped string)