def parse(scanner, rules, scope = ParserScope.empty)
      if result = child.parse(scanner, rules, scope) {|_| scope = _ }
        yield scope.bind(label => result) if block_given?
        result
      end
    end
def parse(scanner, rules, scope = ParserScope.empty)
      if result = child.parse(scanner, rules, scope) {|_| scope = _ }
        yield scope.bind(label => result) if block_given?
        result
      end
    end
Delegate to the decorated parser and associate #label with the parse
 result if successful.

 @param (see Match#parse)

 @return the decorated parser's parse result