Currently, the Quil spec contains EBNF grammar as well as examples of valid and invalid program instructions. Examples are often the most intuitive way to get a quick understanding of the grammatical and syntactical rules a glance. Inaccurate documentation can lead to mistrust of the specification. Additionally, the strictness of a well defined and valid grammar provides a valuable source of truth for downstream parsers (see the many parser generators that support EBNF on Wikipedia's comparison of parser generators). We may want to consider a CI step that validates the grammar and examples.
Currently, the Quil spec contains EBNF grammar as well as examples of valid and invalid program instructions. Examples are often the most intuitive way to get a quick understanding of the grammatical and syntactical rules a glance. Inaccurate documentation can lead to mistrust of the specification. Additionally, the strictness of a well defined and valid grammar provides a valuable source of truth for downstream parsers (see the many parser generators that support EBNF on Wikipedia's comparison of parser generators). We may want to consider a CI step that validates the grammar and examples.
While writing some of the examples in https://github.com/quil-lang/quil/pull/69 I used https://mdkrajnak.github.io/ebnftest/ to validate both the proposed grammar as well as valid / invalid examples.
@stylewarning also suggested that examples could be validated by using the Quilc Lisp parser.