Implemented detection of empty-matching cycles, to permit empty-matching
start patterns
Make shell syntax file better (partial parser) and way more complicated
Start on refactoring. For added safety, add a few more test cases
Better checking of empty-start cycles
Detect and allow cycles of empty start and end at runtime rather than at compile time, such that we can allow more patterns; started work on documenting the internal data structures
Remove depth member from state_stack because it is no longer used
Implemented use-cycle detection; Rewrote the empty-start cycle detection to use depth first search without pushing extra states onto the stack, to prevent reporting non-existing cycles; More work on data structure documentation
Split out code from highlight.c to make it more manageable
Renaming of lots of types and members to make it clearer what they are
More renaming and refactoring
Refactoring: reduce number of arguments passed;
Refactoring: remove error setting macro and replace with function
Refactoring: split out an obvious function, and some more renaming