mirror of
https://github.com/ksherlock/hystricomorph.git
synced 2024-09-27 23:54:37 +00:00
don't exit on first sytnax error.
This commit is contained in:
parent
a0dfbd1291
commit
b602a82cc6
@ -165,6 +165,7 @@ def read_data(f, name):
|
|||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
ln = 0
|
ln = 0
|
||||||
|
errors = 0
|
||||||
for line in f:
|
for line in f:
|
||||||
ln = ln + 1
|
ln = ln + 1
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
@ -172,9 +173,11 @@ def read_data(f, name):
|
|||||||
if line.startswith("#"): continue
|
if line.startswith("#"): continue
|
||||||
if line.startswith("//"): continue
|
if line.startswith("//"): continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
m = re.match(r'^"([^"]*)"\s*:\s*(\d+|0x[A-Fa-f0-9]+)$', line)
|
m = re.match(r'^"([^"]*)"\s*:\s*(\d+|0x[A-Fa-f0-9]+)$', line)
|
||||||
if not m:
|
if not m:
|
||||||
err = "{}:{}: Bad data: {}".format(name,ln,line)
|
err = "Syntax error: {}".format(line)
|
||||||
raise Exception(err)
|
raise Exception(err)
|
||||||
k = orig_k = m[1]
|
k = orig_k = m[1]
|
||||||
|
|
||||||
@ -188,21 +191,27 @@ def read_data(f, name):
|
|||||||
v = int(tmp, base)
|
v = int(tmp, base)
|
||||||
|
|
||||||
if v > 65535:
|
if v > 65535:
|
||||||
err = "{}:{} Value too large: {}".format(name, ln, v)
|
err = "Value too large: {}".format(v)
|
||||||
raise Exception(err)
|
raise Exception(err)
|
||||||
|
|
||||||
if flag_l:
|
if flag_l:
|
||||||
if v > 255 or len_k > 255:
|
if v > 255 or len_k > 255:
|
||||||
err = "{}:{} Value too large: {}".format(name, ln, v)
|
err = "Value too large: {}".format(v)
|
||||||
raise Exception(err)
|
raise Exception(err)
|
||||||
v = (v << 8) + len_k
|
v = (v << 8) + len_k
|
||||||
|
|
||||||
if k in data:
|
if k in data:
|
||||||
err = "{}:{}: Duplicate string: {}".format(name,ln,orig_k)
|
err = "Duplicate string: {}".format(orig_k)
|
||||||
raise Exception(err)
|
raise Exception(err)
|
||||||
|
|
||||||
data[k] = v
|
data[k] = v
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
errors = errors + 1
|
||||||
|
print("{}:{}".format(name, ln), e, file=sys.stderr, flush=True)
|
||||||
|
|
||||||
|
|
||||||
|
if errors: sys.exit(1)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def read_stdin():
|
def read_stdin():
|
||||||
@ -309,8 +318,4 @@ def main():
|
|||||||
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
try:
|
main()
|
||||||
main()
|
|
||||||
except Exception as ex:
|
|
||||||
print("string16: ", ex, file=sys.stderr, flush=True)
|
|
||||||
sys.exit(1)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user