Add test case

This commit is contained in:
Bo Xuan
2022-08-24 16:19:39 +08:00
parent 81633b3c1c
commit 2f3b5e53d4
3 changed files with 267 additions and 5 deletions

Binary file not shown.

View File

@@ -0,0 +1,264 @@
aa = 0
ab = 0
ac = 0
ad = 0
ae = 0
af = 0
ag = 0
ah = 0
ai = 0
aj = 0
ak = 0
al = 0
am = 0
an = 0
ao = 0
ap = 0
aq = 0
ar = 0
at = 0
au = 0
av = 0
aw = 0
ax = 0
ay = 0
az = 0
ba = 0
bb = 0
bc = 0
bd = 0
be = 0
bf = 0
bg = 0
bh = 0
bi = 0
bj = 0
bk = 0
bl = 0
bm = 0
bn = 0
bo = 0
bp = 0
bq = 0
br = 0
bs = 0
bt = 0
bu = 0
bv = 0
bw = 0
bx = 0
by = 0
bz = 0
ca = 0
cb = 0
cc = 0
cd = 0
ce = 0
cf = 0
cg = 0
ch = 0
ci = 0
cj = 0
ck = 0
cl = 0
cm = 0
cn = 0
co = 0
cp = 0
cq = 0
cr = 0
cs = 0
ct = 0
cu = 0
cv = 0
cw = 0
cx = 0
cy = 0
cz = 0
da = 0
db = 0
dc = 0
dd = 0
de = 0
df = 0
dg = 0
dh = 0
di = 0
dj = 0
dk = 0
dl = 0
dm = 0
dn = 0
do = 0
dp = 0
dq = 0
dr = 0
ds = 0
dt = 0
du = 0
dv = 0
dw = 0
dx = 0
dy = 0
dz = 0
ea = 0
eb = 0
ec = 0
ed = 0
ee = 0
ef = 0
eg = 0
eh = 0
ei = 0
ej = 0
ek = 0
el = 0
em = 0
en = 0
eo = 0
ep = 0
eq = 0
er = 0
es = 0
et = 0
eu = 0
ev = 0
ew = 0
ex = 0
ey = 0
ez = 0
fa = 0
fb = 0
fc = 0
fd = 0
fe = 0
ff = 0
fg = 0
fh = 0
fi = 0
fj = 0
fk = 0
fl = 0
fm = 0
fn = 0
fo = 0
fp = 0
fq = 0
fr = 0
fs = 0
ft = 0
fu = 0
fv = 0
fw = 0
fx = 0
fy = 0
fz = 0
ga = 0
gb = 0
gc = 0
gd = 0
ge = 0
gf = 0
gg = 0
gh = 0
gi = 0
gj = 0
gk = 0
gl = 0
gm = 0
gn = 0
go = 0
gp = 0
gq = 0
gr = 0
gs = 0
gt = 0
gu = 0
gv = 0
gw = 0
gx = 0
gy = 0
gz = 0
ha = 0
hb = 0
hc = 0
hd = 0
he = 0
hf = 0
hg = 0
hh = 0
hi = 0
hj = 0
hk = 0
hl = 0
hm = 0
hn = 0
ho = 0
hp = 0
hq = 0
hr = 0
hs = 0
ht = 0
hu = 0
hv = 0
hw = 0
hx = 0
hy = 0
hz = 0
ia = 0
ib = 0
ic = 0
id = 0
ie = 0
ig = 0
ih = 0
ii = 0
ij = 0
ik = 0
il = 0
im = 0
io = 0
ip = 0
iq = 0
ir = 0
it = 0
iu = 0
iv = 0
iw = 0
ix = 0
iy = 0
iz = 0
ja = 0
jb = 0
jc = 0
jd = 0
je = 0
jf = 0
jg = 0
jh = 0
ji = 0
jj = 0
jk = 0
jl = 0
jm = 0
jn = 0
jo = 0
jp = 0
jq = 0
jr = 0
js = 0
jt = 0
ju = 0
jv = 0
jw = 0
jx = 0
jy = 0
jz = 0
ka = 0
kb = 0
kc = 0
var = True
if var:
aa = 1
else:
aa = 2

View File

@@ -158,15 +158,13 @@ def ifelsestmt(self, lhs, n, rule, tree, tokens, first, last):
# just the last one.
if len(tree) == 5:
end_come_froms = tree[-1]
offset = tokens[first].offset
offset = int(tokens[first].offset.split('_')[0]) if isinstance(offset, str) else offset
if end_come_froms.kind != "else_suite" and self.version >= (3, 0):
if end_come_froms == "opt_come_from_except" and len(end_come_froms) > 0:
end_come_froms = end_come_froms[0]
if not isinstance(end_come_froms, Token):
if len(end_come_froms):
return offset > end_come_froms[-1].attr
elif offset > end_come_froms.attr:
return tokens[first].off2int() > end_come_froms[-1].attr
elif tokens[first].off2int() > end_come_froms.attr:
return True
# FIXME: There is weirdness in the grammar we need to work around.
@@ -175,7 +173,7 @@ def ifelsestmt(self, lhs, n, rule, tree, tokens, first, last):
last_token = tree[-1]
else:
last_token = tokens[last]
if last_token == "COME_FROM" and offset > last_token.attr:
if last_token == "COME_FROM" and tokens[first].off2int() > last_token.attr:
if self.version < (3, 0) and self.insts[self.offset2inst_index[last_token.attr]].opname != "SETUP_LOOP":
return True