rewrite lexer so that it works like this: http://golang.org/src/pkg/text/template/parse/ - more robust error checking - easier to read code - easier to modify/change syntax - it's the right thing to do