From 796f3691e6966b2d88cd5e475937da7f61a86d26 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 29 Apr 2016 15:09:22 +0200 Subject: Implement lexical definition for "ID" (Q1) ID ::= [a-z] [a-z0-9]* --- src/regex/RegexTest.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/regex/RegexTest.java b/src/regex/RegexTest.java index 097e4f7..335843c 100644 --- a/src/regex/RegexTest.java +++ b/src/regex/RegexTest.java @@ -38,10 +38,36 @@ public class RegexTest { long dfaMatchTime = dfaMatch(input, index); System.out.println("dfaMatchTime " + dfaMatchTime); } + + private void check(String input, boolean expectOk) { + int length = r.run(input, 0); + if (expectOk && length == -1 || !expectOk && length != -1) { + throw new RuntimeException("Unexpected result for " + input); + } + } + + void assertOk(String input) { + check(input, true); + } + + void assertFail(String input) { + check(input, false); + } + + static void checkId() { + RegexTest reId = new RegexTest("[a-z][a-z0-9]*"); + reId.assertOk("id"); + reId.assertOk("d0d"); + reId.assertFail("Id"); + reId.assertFail("0"); + reId.assertFail("0d"); + } public static void main(String[] args) { RegexTest exampleRegexTest = new RegexTest("aap"); exampleRegexTest.runTest("aap_df34_d asdf sdfd", 0); exampleRegexTest.runTest("a_a_pasdf sdfd", 0); + + checkId(); } } -- cgit v1.2.1