def create_DropOut(self, SM_State): if SM_State.is_acceptance(): incidence_id = self.__incidence_id_of_bipd return CommandList( QuexDebug('pattern %i: backward input position detected\\n' % incidence_id), InputPIncrement(), GotoDoorId(DoorID.bipd_return(incidence_id))) else: return CommandList(QuexAssertNoPassage())
def create_DropOut(self, SM_State, dial_db): if SM_State.is_acceptance(): incidence_id = self.__incidence_id_of_bipd return OpList( Op.QuexDebug( 'pattern %i: backward input position detected\\n' % incidence_id), Op.Increment(E_R.InputP), Op.GotoDoorId(DoorID.bipd_return(incidence_id, dial_db))) else: return OpList(Op.QuexAssertNoPassage())
def create_DropOut(self, SM_State): if SM_State.is_acceptance(): incidence_id = self.__incidence_id_of_bipd return OpList( Op.QuexDebug('pattern %i: backward input position detected\\n' % incidence_id), Op.Increment(E_R.InputP), Op.GotoDoorId(DoorID.bipd_return(incidence_id)) ) else: return OpList( Op.QuexAssertNoPassage() )
def do_bipd_entry_and_return(txt, ThePattern): """(This is a very seldom case) After the pattern has matched, one needs to determine the end of the lexeme by 'backward input position detection' (bipd). Thus, TERMINAL '----------. (goto) '---------> BIPD State Machine ... (determine _input_p) | (label) .----------------' .----------' | The actions on pattern match. """ door_id_entry = DoorID.state_machine_entry(ThePattern.bipd_sm.get_id()) door_id_return = DoorID.bipd_return(ThePattern.incidence_id()) txt.append(" %s\n%s\n" % ( Lng.GOTO(door_id_entry), # Enter BIPD Lng.LABEL(door_id_return)) # Return from BIPD )
def do_bipd_entry_and_return(txt, ThePattern): """(This is a very seldom case) After the pattern has matched, one needs to determine the end of the lexeme by 'backward input position detection' (bipd). Thus, TERMINAL '----------. (goto) '---------> BIPD State Machine ... (determine _input_p) | (label) .----------------' .----------' | The actions on pattern match. """ door_id_entry = DoorID.state_machine_entry(ThePattern.bipd_sm.get_id()) door_id_return = DoorID.bipd_return(ThePattern.incidence_id()) txt.append(" %s\n%s\n" % (Lng.GOTO(door_id_entry), # Enter BIPD Lng.LABEL(door_id_return)) # Return from BIPD )