diff options
author | Ben Connors <benconnors@outlook.com> | 2019-12-01 13:44:30 -0500 |
---|---|---|
committer | Ben Connors <benconnors@outlook.com> | 2019-12-01 13:54:25 -0500 |
commit | 0da04f3bab547c11e3ede773df822c76a3324787 (patch) | |
tree | c3d1577df21f6f45fadd3c55842c07ec34964288 /interface/input/parsers.py | |
parent | 9f5f278d14af6029c8d4d53c9d93b0f9c409bf8a (diff) |
Implement joins in interface
Diffstat (limited to 'interface/input/parsers.py')
-rwxr-xr-x | interface/input/parsers.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/interface/input/parsers.py b/interface/input/parsers.py index 7dc7d82..64ba7c4 100755 --- a/interface/input/parsers.py +++ b/interface/input/parsers.py @@ -101,6 +101,30 @@ def parse_num(s): return (None if not buff else int(buff)), s, buff +def parse_numlist(s): + if not s: + return None, s, None + + rs = [] + disp = [] + tc = False + while s: + r, s, d = parse_num(s) + if r is None: + break + tc = False + rs.append(r) + disp.append(d) + if s and s[0] == ',': + s = s[1:] + tc = True + else: + break + + if not rs: + return None, s, None + return tuple(rs), s, ", ".join(disp) + (", " if tc else "") + _POSTFIXES = "mcisahkegtp" def parse_time(s): @@ -201,4 +225,5 @@ PARSE_MAP = { "$quoted_string": parse_quotedstring, "$letter": parse_any_letter, "$time": parse_time, + "$numlist": parse_numlist, } |