From c30f916065bb20b8db246b956bdba2afea4fcef9 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 9 May 2012 01:13:56 -0400 Subject: [PATCH] Fix parsing of floating point numbers. --- pymbolic/parser.py | 4 ++-- test/test_pymbolic.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pymbolic/parser.py b/pymbolic/parser.py index 048db64..e5f1269 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 d2f7e97..e9a756c 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")) -- GitLab