pyrser/dsl.py
def add_rpt(self, sequence, mod, pt):
    """Add a repeater to the previous sequence"""
    modstr = self.value(mod)
    if modstr == '!!':
        # cursor on the REPEATER
        self._stream.restore_context()
        # log the error
        self.diagnostic.notify(
            error.Severity.ERROR,
            "Cannot repeat a lookahead rule",
            error.LocationInfo.from_stream(self._stream, is_error=True)
        )
        raise self.diagnostic
    if modstr == '!':
        # cursor on the REPEATER
        self._stream.restore_context()
        # log the error
        self.diagnostic.notify(
            error.Severity.ERROR,
            "Cannot repeat a negated rule",
            error.LocationInfo.from_stream(self._stream, is_error=True)
        )
        raise self.diagnostic
    oldnode = sequence
    sequence.parser_tree = pt.functor(oldnode.parser_tree)
    return True
def add_rpt(self, sequence, mod, pt):
    modstr = self.value(mod)
    if modstr == '!!':
        # cursor on the REPEATER
        self._stream.restore_context()
        # log the error
        self.diagnostic.notify(
            error.Severity.ERROR,
            "Cannot repeat a lookahead rule",
            error.LocationInfo.from_stream(self._stream, is_error=True)
        )
        raise self.diagnostic
    if modstr == '!':
        # cursor on the REPEATER
        self._stream.restore_context()
        # log the error
        self.diagnostic.notify(
            error.Severity.ERROR,
            "Cannot repeat a negated rule",
            error.LocationInfo.from_stream(self._stream, is_error=True)
        )
        raise self.diagnostic
    oldnode = sequence
    sequence.parser_tree = pt.functor(oldnode.parser_tree)
    return True
def add_rpt ( self , sequence , mod , pt ) : modstr = self . value ( mod ) if modstr == '!!' : # cursor on the REPEATER self . _stream . restore_context ( ) # log the error self . diagnostic . notify ( error . Severity . ERROR , "Cannot repeat a lookahead rule" , error . LocationInfo . from_stream ( self . _stream , is_error = True ) ) raise self . diagnostic if modstr == '!' : # cursor on the REPEATER self . _stream . restore_context ( ) # log the error self . diagnostic . notify ( error . Severity . ERROR , "Cannot repeat a negated rule" , error . LocationInfo . from_stream ( self . _stream , is_error = True ) ) raise self . diagnostic oldnode = sequence sequence . parser_tree = pt . functor ( oldnode . parser_tree ) return True
Add a repeater to the previous sequence
Add a repeater to the previous sequence