{
package main

import "fmt"

func main() {
    fmt.Println("with FailureTracking:")
    _, err := Parse("", []byte(`123455`))
    fmt.Println(err)
    _, err = Parse("", []byte(`

    1

    2

    3

    `))
    fmt.Println(err)
    _, err = Parse("", []byte(`

    1

    2

    x
    `))
    fmt.Println(err)
}
}

Program <- _ (X _)* _  EOF

X <- [0-9]

_ "whitespace" <- ( [ \t\r\n] )*

EOF <- !.