summaryrefslogtreecommitdiff
path: root/interface/input/parsers.py
diff options
context:
space:
mode:
Diffstat (limited to 'interface/input/parsers.py')
-rwxr-xr-xinterface/input/parsers.py25
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,
}