simplify simple ref parser
diff --git a/reclass/values/parser.py b/reclass/values/parser.py
index 6d53af7..ca59da1 100644
--- a/reclass/values/parser.py
+++ b/reclass/values/parser.py
@@ -94,14 +94,10 @@
return line
def _get_simple_ref_parser():
- white_space = pp.White()
- text = pp.Word(pp.printables, excludeChars=_EXCLUDES)
- string = pp.Combine(pp.OneOrMore(text | white_space)).setParseAction(_string)
-
+ string = pp.CharsNotIn(_EXCLUDES).setParseAction(_string)
ref_open = pp.Literal(_REF_OPEN).suppress()
ref_close = pp.Literal(_REF_CLOSE).suppress()
reference = (ref_open + pp.Group(string) + ref_close).setParseAction(_reference)
-
line = pp.StringStart() + pp.Optional(string) + reference + pp.Optional(string) + pp.StringEnd()
return line
@@ -115,14 +111,13 @@
self._delimiter = delimiter
if isinstance(value, str):
- item = self._parse_string(value)
+ return self._parse_string(value)
elif isinstance(value, list):
- item = ListItem(value)
+ return ListItem(value)
elif isinstance(value, dict):
- item = DictItem(value)
+ return DictItem(value)
else:
- item = ScaItem(value)
- return item
+ return ScaItem(value)
def _parse_string(self, value):
dollars = value.count('$')