quil-lang / quil

Specification of Quil: A Practical Quantum Instruction Set Architecture
https://quil-lang.github.io/
Apache License 2.0
104 stars 16 forks source link

CI job for spec grammar validation #70

Open erichulburd opened 7 months ago

erichulburd commented 7 months ago

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.