diff --git a/asciimathml.py b/asciimathml.py old mode 100644 new mode 100755 index 7e976e6..91fbaec --- a/asciimathml.py +++ b/asciimathml.py @@ -37,6 +37,7 @@ def El(tag, text=None, *children, **attrib): return element number_re = re.compile('-?(\d+\.(\d+)?|\.?\d+)') +quoted_string_re = re.compile(r'"([^"]*)"') def strip_parens(n): if n.tag == 'mrow': @@ -327,6 +328,11 @@ def parse_m(s, required=False): if s == '': return '', El('mi', u'\u25a1') if required else None + m = quoted_string_re.match(s) + if m: + text = m.group(1) + return s[m.end():], El('mrow', El('mtext', text)) + m = number_re.match(s) if m: diff --git a/test/test.py b/test/test.py index fd98cc1..36d27a1 100644 --- a/test/test.py +++ b/test/test.py @@ -68,6 +68,13 @@ def testText(self): El('math', El('mstyle', El('mrow', El('mtext', text='undefined'))))) + def testQuotedText(self): + self.assertTreeEquals(parse('"time" = "money"'), + El('math', El('mstyle', + El('mrow', El('mtext', text='time')), + El('mo', text='='), + El('mrow', El('mtext', text='money'))))) + def testIncompleteFrac(self): self.assertTreeEquals(parse('alpha /'), El('math', El('mstyle',