Zucchini - An Erlang INI parser

Example

1> zucchini:parse_string("
1> [pumpkin]
1> variety = winter
1> name = Pumpkin ; mmm, pumpkin pie
1> fortune = \"Pumpkin carving = Awesome\"
1> weight = 3.3
1> amount = 2
1>
1> [yellow] ; It's just called Yellow!
1> variety = summer
1> name = Yellow Squash
1> weight = 0.3
1> amount = 3
1> ").
{ok,[{<<"pumpkin">>,[{<<"variety">>,<<"winter">>},
               {<<"name">>,<<"Pumpkin">>},
               {<<"fortune">>,<<"Pumpkin carving = Awesome">>},
               {<<"weight">>,3.3},
               {<<"amount">>,2}]},
     {<<"yellow">>,[{<<"variety">>,<<"summer">>},
              {<<"name">>,<<"Yellow Squash">>},
              {<<"weight">>,0.3},
              {<<"amount">>,3}]}]}

Static Analysis (Prisma .pplt)

Starting with version 0.1.2, the Hex package ships a pre-built Prisma Persistent Lookup Table (zucchini_0.1.2.pplt) covering all zucchini modules (zucchini, zucchini_lexer, and zucchini_parser).

When zucchini is used as a dependency in a project checked with rebar3 prisma or mix prisma, Prisma automatically loads the shipped .pplt file from the package root instead of re-analyzing the BEAM modules from scratch.

To rebuild the .pplt file locally after modifying zucchini:

rebar3 prisma build

See the zucchini case study & benchmark for more details.