zelda3 icon indicating copy to clipboard operation
zelda3 copied to clipboard

tables/text_compression.py - line 472 has a syntax error

Open tulpenkiste opened this issue 1 year ago • 1 comments

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

tulpenkiste avatar May 09 '23 00:05 tulpenkiste

:= 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

qurious-pixel avatar May 09 '23 17:05 qurious-pixel