xbc: barevals do have spaces in them, dingus
parent
7d4b991f4a
commit
053b9188a8
|
@ -112,8 +112,8 @@ key_fragment = Word(alphas + nums + '_-')
|
|||
key = DelimitedList(key_fragment, delim='.', combine=True)
|
||||
|
||||
bareval = CharsNotIn('{}#=+:;,\n\'"')
|
||||
strvals = QuotedString("'", multiline=True, unquote_results=True)
|
||||
strvald = QuotedString('"', multiline=True, unquote_results=True)
|
||||
strvals = QuotedString("'", multiline=True, unquote_results=False)
|
||||
strvald = QuotedString('"', multiline=True, unquote_results=False)
|
||||
value = bareval | strvald | strvals
|
||||
|
||||
assign = Literal('=')
|
||||
|
@ -159,6 +159,11 @@ def lex(data):
|
|||
tree = XBCParser.parseString(data).asList()
|
||||
return tree
|
||||
|
||||
def unquote(val):
|
||||
if val[0] in '\'"' and val[0] == val[-1]:
|
||||
return val[1:-1]
|
||||
return val.strip()
|
||||
|
||||
def parse_block(key, seq):
|
||||
if isinstance(seq, list) and len(seq) == 1 and isinstance(seq[0], list):
|
||||
seq = seq[0]
|
||||
|
@ -200,6 +205,12 @@ def parse_block(key, seq):
|
|||
else:
|
||||
assign = value
|
||||
|
||||
if isinstance(assign, list):
|
||||
for i in range(len(assign)):
|
||||
assign[i] = unquote(assign[i])
|
||||
else:
|
||||
assign = unquote(assign)
|
||||
|
||||
if isinstance(assign, list) and len(assign) == 1:
|
||||
assign = assign[0]
|
||||
|
||||
|
|
Loading…
Reference in New Issue