diff options
author | Peter Wu <peter@lekensteyn.nl> | 2016-04-29 15:09:22 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2016-04-29 15:09:22 +0200 |
commit | 796f3691e6966b2d88cd5e475937da7f61a86d26 (patch) | |
tree | c01cbe4c3d569952d69a11f315ac74e360baeb56 /src/regex/RegexTest.java | |
parent | 77fb67d91af5598ee1c8b19b0e62a7d2eb21b05f (diff) | |
download | RegexTest-796f3691e6966b2d88cd5e475937da7f61a86d26.tar.gz |
Implement lexical definition for "ID" (Q1)
ID ::= [a-z] [a-z0-9]*
Diffstat (limited to 'src/regex/RegexTest.java')
-rw-r--r-- | src/regex/RegexTest.java | 26 |
1 files changed, 26 insertions, 0 deletions
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(); } } |