factor out a struct HLREngine
split LR code into lr.c, lr0.c, and lalr.c
split out h_lrengine_action()
return running state from h_lrengine_step
record conflicts in a special HLRAction type
add stub GLR backend with h_glr_parse() a copy of h_lr_parse()
fix conflict pretty-printing
expand stub GLR backend
avoid duplicate conflict branches
add engine forking
add ambiguous test case for GLR
add an assertion checking that HLR_REDUCE is always followed by HLR_SHIFT
piggy-back the next shift directly onto the reduce
don't even touch the right stack on piggy-back shifts
make h_lrengine_step a void function again
make ambiguous test ignore order of precedence
eliminate the right stack; work with the HInputStream directly
split h_lr_lookup into two (yet identical) functions
better factor out lr table writes
split LR table representation by key type (terminals/nonterminals)