From 1296a8d77e6701d18090c24853cd098f12ef069a Mon Sep 17 00:00:00 2001 From: Fredrik Lundh Date: Sun, 21 Oct 2001 18:04:11 +0000 Subject: sre.Scanner fixes (from Greg Chapman). also added a Scanner sanity check to the test suite. added a few missing exception checks in the _sre module --- Lib/test/test_sre.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'Lib/test/test_sre.py') diff --git a/Lib/test/test_sre.py b/Lib/test/test_sre.py index 12a66f9aa7..e8791519d5 100644 --- a/Lib/test/test_sre.py +++ b/Lib/test/test_sre.py @@ -223,6 +223,26 @@ pat = sre.compile(sre.escape(p)) test(r"""pat.match(p) is not None""", 1) test(r"""pat.match(p).span()""", (0,256)) +if verbose: + print 'Running tests on sre.Scanner' + +def s_ident(scanner, token): return token +def s_operator(scanner, token): return "op%s" % token +def s_float(scanner, token): return float(token) +def s_int(scanner, token): return int(token) + +scanner = sre.Scanner([ + (r"[a-zA-Z_]\w*", s_ident), + (r"\d+\.\d*", s_float), + (r"\d+", s_int), + (r"=|\+|-|\*|/", s_operator), + (r"\s+", None), + ]) + +# sanity check +test('scanner.scan("sum = 3*foo + 312.50 + bar")', + (['sum', 'op=', 3, 'op*', 'foo', 'op+', 312.5, 'op+', 'bar'], '')) + if verbose: print 'Pickling a SRE_Pattern instance' -- cgit v1.2.1