Пример #1
0
def _numMatches(parseTree, data, name='a'):


    _calls = []
    def _cb():
        _calls.append(True)

    i = Interp(parseTree, _cb)
    try:
        i.receive(data)
    except ParseError as e:
        return 0
    return len(_calls)
Пример #2
0
class many(object):
    def __init__(self, interp, rule):
        rule.success = [self._store, setRule(node=rule)]

        self.interp = Interp(rule)
        self.gathered = []

    @property
    def need(self):
        return self.interp.current.need

    def receive(self, data, previous):
        try:
            self.interp.receive(data)
        except ParseError:
            return self.interp._ix, self.gathered
        return None, None

    def _store(self, interp, rv):
        self.gathered.append(rv)
Пример #3
0
class many(object):
    def __init__(self, interp, rule):
        rule.success = [self._store, setRule(node=rule)]

        self.interp = Interp(rule)
        self.gathered = []

    @property
    def need(self):
        return self.interp.current.need

    def receive(self, data, previous):
        try:
            self.interp.receive(data)
        except ParseError:
            return self.interp._ix, self.gathered
        return None, None

    def _store(self, interp, rv):
        self.gathered.append(rv)