func BenchmarkParseKeyword(b *testing.B) {
	input := []byte("a = uint32:'a'")
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		if _, err := Parse("", input); err == nil {
			b.Fatal(err)
		}
	}
}
With keywords in the grammar:
BenchmarkParseKeyword       5000            315189 ns/op           50175 B/op        530 allocs/op

With keywords in a go map:
BenchmarkParseKeyword      10000            201175 ns/op           27017 B/op        331 allocs/op
package main
import "testing"
func BenchmarkParseUnicodeClass(b *testing.B) {
	input := []byte("a = [\\p{Latin}]")
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		if _, err := Parse("", input); err != nil {
			b.Fatal(err)
		}
	}
}