Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def makekeyiflinefromsourcerec(re):
- # AND | NOT ^ OR ~
- for xx2 in re:
- if xx2.lstrip()[0:6]=="#@keys":
- kl = list(xx2[7:G_max].lstrip().rstrip())
- andnotorl = [];aand = 1;nnot = 0;oor = 0;st1 = ""
- while kl:
- ch = kl.pop(0)
- if ch =="|":
- if aand:
- if st1: andnotorl.append((st1,"and"))
- if nnot:
- if st1: andnotorl.append((st1,"not"))
- if oor:
- if st1: andnotorl.append((st1,"or"))
- aand = 1 ; nnot = 0 ; oor=0;st1 = ""
- else:
- if ch == "^":
- if aand:
- if st1: andnotorl.append((st1,"and"))
- if nnot:
- if st1: andnotorl.append((st1,"not"))
- if oor:
- if st1: andnotorl.append((st1,"or"))
- aand = 0 ; nnot = 1 ;oor=0; st1 = ""
- else:
- if ch == "~":
- if aand:
- if st1: andnotorl.append((st1,"and"))
- if nnot:
- if st1: andnotorl.append((st1,"not"))
- if oor:
- if st1: andnotorl.append((st1,"or"))
- aand = 0 ; nnot = 0 ; oor=1 ; st1 = ""
- else:
- st1 = st1+ch
- if aand:
- andnotorl.append((st1,"and"))
- if nnot:
- andnotorl.append((st1,"not"))
- if oor:
- andnotorl.append((st1,"or"))
- nr = []
- for i,vv in enumerate(re):
- if not(i):
- nr.append(vv)
- else:
- if i == 1:
- fst = "if "
- for i2,ov in enumerate(andnotorl):
- if ov[1] == "or":
- fst += " or "
- fst += ov[0]
- if ov[1] == "and":
- if i2:
- fst += " and "
- fst += ov[0]
- else:
- fst += ov[0]
- if ov[1] == "not":
- if i2:
- fst += " and not "
- else:
- fst += " not "
- fst += ov[0]
- fst += ":"
- nr.append(" "+fst)
- else:
- nr.append(" "+vv)
- return nr
- #~ {'y_displ': 0, 'x_displ': 0, 'rect': (419, 57, 504, 757), 'y': 10, 'x': 22, 'dir': 0}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement