1package builder
2
3import (
4	"io/ioutil"
5	"strings"
6	"testing"
7
8	"github.com/mna/pigeon/bootstrap"
9)
10
11var grammar = `
12{
13var test = "some string"
14
15func init() {
16	fmt.Println("this is inside the init")
17}
18}
19
20start = additive eof
21additive = left:multiplicative "+" space right:additive {
22	fmt.Println(left, right)
23} / mul:multiplicative { fmt.Println(mul) }
24multiplicative = left:primary op:"*" space right:multiplicative { fmt.Println(left, right, op) } / primary
25primary = integer / "(" space additive:additive ")" space { fmt.Println(additive) }
26integer "integer" = digits:[0123456789]+ space { fmt.Println(digits) }
27space = ' '*
28eof = !. { fmt.Println("eof") }
29`
30
31func TestBuildParser(t *testing.T) {
32	p := bootstrap.NewParser()
33	g, err := p.Parse("", strings.NewReader(grammar))
34	if err != nil {
35		t.Fatal(err)
36	}
37	if err := BuildParser(ioutil.Discard, g); err != nil {
38		t.Fatal(err)
39	}
40}
41