If a grammar has terminating expansions from <start> non-terminal, then it always produces a single expansion from those terminating expansion.
E.g. for the grammar
{
"<start>" : [[ "<p>", "a"], ["bc"], ["xyz"]],
"<p>" : [["qrp"]]
}
F1 always produces bc and never xyz or qrpa.
This is because the expansion "<start>" : [[ "<p>", "a"] is coded up as gen_start_2, and the expansion "<start>" : [[ "xyz"] is coded up as gen_start_1 while the expansion "<start>" : ["bc"]] is gen_start_0. gen_init always calls on gen_start_0, so it always prints bc and never any alternative.
If a grammar has terminating expansions from
<start>non-terminal, then it always produces a single expansion from those terminating expansion.E.g. for the grammar
F1 always produces
bcand neverxyzorqrpa.This is because the expansion
"<start>" : [[ "<p>", "a"]is coded up asgen_start_2, and the expansion"<start>" : [[ "xyz"]is coded up asgen_start_1while the expansion"<start>" : ["bc"]]isgen_start_0.gen_initalways calls ongen_start_0, so it always printsbcand never any alternative.