code: def _create_parser(cls):
          
          section_name = p.Word(p.alphas + "_")
          attr_name = attr_value = p.Word(p.alphanums + "_/")
          LBRACE, RBRACE = map(p.Suppress, "{}")
          attr = p.Group(attr_name + (attr_value | p.quotedString.setParseAction(p.removeQuotes)))
          attr_list = p.Dict(p.ZeroOrMore(attr))
          simple_section = p.Group(section_name + LBRACE + attr_list + RBRACE)
          complex_section = p.Group(section_name + LBRACE + p.OneOrMore(simple_section) + RBRACE)
          simple_or_complex = p.Dict(simple_section | complex_section)
          my_conf = p.Group(p.ZeroOrMore(simple_or_complex))
          my_conf.ignore("#" + p.restOfLine)
          return my_conf
docs: Need to check the specific symbol "/" in attr_value part as well.
          I checked some multipath configuraion files from the sosreport and got
          although there are some more specific symbols like "-%", it is enclosed
          in double quotes and will be accepted. Furthermore, I also checked the
          source code of "device-mapper-multipath" and got if the attr_value in
          "multipath.conf" include a "whitespace", it must be enclosed in double
          quotation marks. So, we could just add one more specific symbol "/" to
          check.
          ----------------------------------------------------------
          udev_dir                /dev
          getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
          ----------------------------------------------------------