Source code for pyndn.util.regex.ndn_regex_backref_matcher

# -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
#
# Copyright (C) 2017-2019 Regents of the University of California.
# Author: Yingdi Yu <http://irl.cs.ucla.edu/~yingdi/>
# Author: Jeff Thompson <[email protected]>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# A copy of the GNU Lesser General Public License is in the file COPYING.

from pyndn.util.regex.ndn_regex_matcher_base import NdnRegexMatcherBase

[docs]class NdnRegexBackrefMatcher(NdnRegexMatcherBase): """ Create an NdnRegexBackrefMatcher. :param str expr: :param NdnRegexBackrefManager backrefManager: """ def __init__(self, expr, backrefManager): super(NdnRegexBackrefMatcher, self).__init__( expr, NdnRegexMatcherBase.NdnRegexExprType.BACKREF, backrefManager)
[docs] def lateCompile(self): self._compile()
def _compile(self): if len(self._expr) < 2: raise NdnRegexMatcherBase.Error("Unrecognized format: " + self._expr) lastIndex = len(self._expr) - 1 if '(' == self._expr[0] and ')' == self._expr[lastIndex]: matcher = NdnRegexPatternListMatcher( self._expr[1:lastIndex], self._backrefManager) self._matchers.append(matcher) else: raise NdnRegexMatcherBase.Error("Unrecognized format: " + self._expr)
# Put this last to avoid an import loop. from pyndn.util.regex.ndn_regex_pattern_list_matcher import NdnRegexPatternListMatcher