Add pattern matching facility for basic parsing
Add pattern matching facility for basic parsing

pattern_match provides a regex-like DSL for matching nested structures
generated by the lexer, which automates out the lexer.is_* checks and
the manual indexing in the driver.

adamnew123456/spc,adamnew123456/spc