colm
colm copied to clipboard
[colm] the * and + operators should use left-recursion
Original motivation for right recursion was convenient lisp-like list deconstruction into head and tail. There is a place for right recursion, however, it makes more sense now to be consistent with the parsing algorithm and use left-recursion.
The generated iterator code will need to change to allow forward walk of left-recursive structures. The repeat iterator is used heavily in the colm loader.
Really want this to be a reducer, but that's a bigger port.
We also have some iterators depending on right recursion. These will need to change.