func Parse(input string) (query []Query, err error) { s := parsec.NewScanner([]byte(input)) result, next := y(s) if next.Endof() { query = result.([]Query) } else { err = errors.New("Failed to parse input") } return }
func genDocuments(b *couchbase.Bucket, prodfile string, idx, n int) { // compile text, err := ioutil.ReadFile(prodfile) if err != nil { log.Fatal(err) } scope := compile(parsec.NewScanner(text)).(mcommon.Scope) seed, bagdir := uint64(options.seed), options.bagdir scope = monster.BuildContext(scope, seed, bagdir, prodfile) nterms := scope["_nonterminals"].(mcommon.NTForms) // evaluate for i := 0; i < options.count; i++ { scope = scope.RebuildContext() doc := evaluate("root", scope, nterms["s"]).(string) key := makeKey(prodfile, idx, i+1) err = b.SetRaw(key, options.expiry, []byte(doc)) if err != nil { fmt.Printf("%T %v\n", err, err) } mf(err, "error setting document") } fmt.Printf("routine %v generated %v documents for %q\n", idx, n, b.Name) done <- true }