First pass scan

This commit is contained in:
WQY\qiong
2023-03-09 22:44:13 +08:00
parent 369e636e13
commit 96cb99b87a
11 changed files with 156 additions and 7 deletions

View File

@@ -159,6 +159,32 @@ def inp_in_curve(section: list[str]) -> ChangeSet:
return cs
def inp_in_curve_new(name: str, section: list[str]) -> None:
types = {}
descs = {}
curves: list[str] = []
count = len(section)
for i in range(0, count):
if section[i].startswith(';'):
# ;type: desc
type_plus_desc = section[i].removeprefix(';')
type_plus_desc_tokens = type_plus_desc.split(':')
next = i + 1
if next < count and section[next].startswith(';') == False:
next_tokens = section[next].split()
types[next_tokens[0]] = type_plus_desc_tokens[0].strip().upper()
if len(type_plus_desc_tokens) > 1:
descs[next_tokens[0]] = type_plus_desc_tokens[1].strip()
continue
tokens = section[i].split()
if tokens[0] not in curves:
curves.append(tokens[0])
write(name, f"insert into _curve (id, type) values ('{tokens[0]}', '{types[tokens[0]]}');")
write(name, f"insert into curves (id, x, y) values ('{tokens[0]}', {float(tokens[1])}, {float(tokens[2])});")
def inp_out_curve(name: str) -> list[str]:
lines = []
types = read_all(name, f"select * from _curve")