github.com/prataprc/monster (go): Use production grammer with a rudimentary S expression like language to generate permutations and combinations. Every element in the grammer including the S expressions will be converted into a Form object.  Parser uses `parsec` tool to parse production grammar and construct generator tree.  Monster grammar  nomenclature of forms constructed while compiling a production file,  forms["##literaltok"] evaluating INT/HEX/OCT/FLOAT/TRUE/FALSE in form-args forms["##formtok"] evaluating any other form-args, an open ended spec forms["##ident"] evaluating non-terminal identifiers in rule-args forms["##term"] evaluating terminals like DQ, NL in farm-args or rule-args forms["##string"] evaluating literal strings in form-args and rule-args forms["##ref"] evaluating references into local/global namespace forms["##rule"] evaluating a non-terminal rule forms[<symbol>] evaluating builtin or application supplied functions forms["#<ident>] evaluating non-terminal forms from top-level forms["##var"] in unused as of now  these forms are evaluated from one of top-level forms to generate permutations and combinations.  Form evaluation happens at the following points using Eval() or EvalForms() APIs,  references:  Programmatically invoking monster {
Keywords: generator|golang|grammar