func stop(st p.State) (interface{}, error) { tran := st.Begin() defer st.Rollback(tran) r, err := p.Choice( p.Try(p.Space), p.Try(p.Newline), p.Try(p.RuneOf(":.()[]{}?")), p.Try(p.EOF), )(st) if err != nil { return nil, err } return r, nil }