           ans.push(x.call(this))
         catch f
           if f != @fail
+            console.log "many error"
+            console.log f
             throw f
           @input = origInput
           break

          @_apply("char")
        @_applyWithArgs("seq", y)

    initialize: ->

    # match and matchAll are a grammar's "public interface"

              input = input.tl
            input.idx--
          return matchFailed(m, input.idx)
        console.log "special error" + f
        throw f

    @match: (obj, rule, args, matchFailed) ->
