Example #1
0
 def variabilize_mode(self,mode):
     """Returns the variabilized mode only."""
     if 'abrupt_acceleration(' in mode:
         stop = 'stop'
     inp = functs.plmrks(mode,'+')
     out = functs.plmrks(mode,'-')
     gr = functs.plmrks(mode,'#')
     all = flatten([inp,out,gr])
     d,v = {},0   
     for mo in all:
         if mo in d:
             n = d[mo]
             mode = functs.replace_nth(mode,mo,'X'+str(v),1) 
             v += 1
             d[mo] += 1
         else:
             mode = functs.replace_nth(mode,mo,'X'+str(v),1) 
             v += 1
             d[mo] = 1 
     return mode 
Example #2
0
 def variabilize_mode_(self,mode):
     """Returns the variabilized mode in addition to a variables/placemarkers map.
        This is used to find if a mode declaration subsumes an atom (using the
        theta_subsumption function from subsumption)"""
     if 'abrupt_acceleration(' in mode:
         stop = 'stop'
     inp = functs.plmrks(mode,'+')
     out = functs.plmrks(mode,'-')
     gr = functs.plmrks(mode,'#')
     all_ = flatten([inp,out,gr])
     d,v,map_ = {},0,{}   
     for mo in all_:
         mode = functs.replace_nth(mode,mo,'X'+str(v),1) 
         map_.update({'X'+str(v):mo})
         v += 1
         if mo in d:
             #n = d[mo]
             d[mo] += 1
         else:
             d[mo] = 1 
     return (map_,mode)