diff --git a/pymbolic/parser.py b/pymbolic/parser.py index 048db64f998941d46afacc89ae334a9cdbe0e758..e5f1269ed09e8a75969ad1eb945bbaab96ddc54f 100644 --- a/pymbolic/parser.py +++ b/pymbolic/parser.py @@ -57,9 +57,9 @@ class Parser: (_imaginary, (_float, pytools.lex.RE("j"))), (_float, ("|", pytools.lex.RE(r"[+-]?[0-9]+\.[0-9]*([eEdD][+-]?[0-9]+)?"), - pytools.lex.RE(r"[+-]?[0-9]+(\.[0-9]*)?[eEdD][+-]?[0-9]+"), + pytools.lex.RE(r"[+-]?[0-9]+(\.[0-9]*)?[eEdD][+-]?[0-9]+\b"), pytools.lex.RE(r"[+-]?[0-9]*\.[0-9]+([eEdD][+-]?[0-9]+)?"), - pytools.lex.RE(r"[+-]?[0-9]*(\.[0-9]+)?[eEdD][+-]?[0-9]+"))), + pytools.lex.RE(r"[+-]?[0-9]*(\.[0-9]+)?[eEdD][+-]?[0-9]+\b"))), (_int, pytools.lex.RE(r"[0-9]+")), (_plus, pytools.lex.RE(r"\+")), (_minus, pytools.lex.RE(r"-")), diff --git a/test/test_pymbolic.py b/test/test_pymbolic.py index d2f7e97639cc2e8d346b3ff90eb84e79281dce7a..e9a756cd1faa4121bf98d001d6d50b8240e45db7 100644 --- a/test/test_pymbolic.py +++ b/test/test_pymbolic.py @@ -135,6 +135,9 @@ def test_parser(): parse("(2*a[1]*b[1]+2*a[0]*b[0])*(hankel_1(-1,sqrt(a[1]**2+a[0]**2)*k) " "-hankel_1(1,sqrt(a[1]**2+a[0]**2)*k))*k /(4*sqrt(a[1]**2+a[0]**2)) " "+hankel_1(0,sqrt(a[1]**2+a[0]**2)*k)") + print repr(parse("d4knl0")) + print repr(parse("0.")) + print repr(parse("0.e1"))