1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
14 var fset = token.NewFileSet()
17 var grammars = []string{
25 `Program = "a" | "b" "c" .
28 `Program = "a" ... "z" .
33 Note = Do | (Re | Mi | Fa | So | La) | Ti .
46 func check(t *testing.T, filename string, src []byte) {
47 grammar, err := Parse(fset, filename, src)
49 t.Errorf("Parse(%s) failed: %v", src, err)
51 if err = Verify(fset, grammar, "Program"); err != nil {
52 t.Errorf("Verify(%s) failed: %v", src, err)
57 func TestGrammars(t *testing.T) {
58 for _, src := range grammars {
59 check(t, "", []byte(src))
65 // TODO(gri) add some test files
69 func TestFiles(t *testing.T) {
70 for _, filename := range files {
71 src, err := ioutil.ReadFile(filename)
75 check(t, filename, src)