zelda3
zelda3 copied to clipboard
tables/text_compression.py - line 472 has a syntax error
Describe your bug here. And how to reproduce it.
Code on line 472: if r := rev.get(a[0]):
:= is not correct syntax on a lot of python versions.
What is your build target?
Linux
:= is a walrus operator introduced in Python 3.8.
try this on your code:
def encode_greedy_from_dict(s, i, rev, a2i, info):
a = s[i:]
r = rev.get(a[0])
if r:
for k, v in r.items():
if a.startswith(k):
return [v + info.DICT_BASE_ENC], len(k)
and also L480
if a[0] == '[':
cmd, param = a[1:a.index(']')], None
cmdlen = len(cmd)
r = a2i.get(a[:cmdlen+2])
if r:
return [r], cmdlen+2
if ' ' in cmd:
cmd, param = cmd.split(' ', 1)
param = int(param)
return kEncoders[info.encoder](cmd, param), cmdlen + 2
else:
return [a2i[a[0]]], 1
https://github.com/snesrev/zelda3/blob/a23632ae6cec5474ec77deb6e21e08ccbf913d8f/tables/text_compression.py#LL470C1-L475C48
https://github.com/snesrev/zelda3/blob/a23632ae6cec5474ec77deb6e21e08ccbf913d8f/tables/text_compression.py#LL477C3-L487C26