• Dick Hollenbeck's avatar
    Implement "KiCad s-epression" support for boost::property_tree's ptree, the 8 · 6bf3d7cd
    Dick Hollenbeck authored
    bit string version of property_tree. The ram resident structure of the ptree is
    mostly compatible with one created using the xml_parser from
    boost::property_tree, with slight differences in the way atoms are stored. The
    result is you can use Format() to convert from xml to s-expression, but not the
    other way around. You can write a simple s-expression beautifier in just a few
    lines of code.
    
    The main value however is the s-expression parser, i.e. Scan(), which is an
    alternative to crafting a custom recursive descent parser for a particular
    grammar. The tipping point depends on whether you want to read only a small
    portion of a much larger document. If so, then using the ptree will likely be a
    "faster to code" route. Documentation on how to navigate a ptree can be found on
    the boost website and there are a number of examples in the
    pcbnew/eagle_plugin.cpp file in this project. Powerful path navigation support
    makes it easy to extract a subset of a ptree.
    6bf3d7cd
property_tree.cpp 2.49 KB