Commit Graph

2 Commits

Author SHA1 Message Date
Martin Atkins
d57901de5f zclsyntax: start of a ragel-based scanner
Using Ragel here because the scanner is going to be somewhat complex due
to the need to switch back and forth between normal and template states,
etc. This should be easier to maintain than a hand-written scanner, while
ragel gives us the extra features we need to implement things that would
normally be too complex for a "regular" scanner generator.
2017-05-27 19:01:43 -07:00
Martin Atkins
bae8f83298 zclsyntax: Generate "Variables" implementations for all Expressions
The implementation of Variables will be identical for every Expression
implementation since we just wrap our AST-walk-based "Variables" function
to do the work.

Rather than manually copy-pasting the declaration for each expression
type, instead we'll generate this programmatically using "go generate".
This will need to be re-run each time a new expression node type is
added, in order to make it actually implement the Expression interface.
2017-05-24 08:50:44 -07:00