summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2016-04-29 15:09:22 +0200
committerPeter Wu <peter@lekensteyn.nl>2016-04-29 15:09:22 +0200
commit796f3691e6966b2d88cd5e475937da7f61a86d26 (patch)
treec01cbe4c3d569952d69a11f315ac74e360baeb56 /src
parent77fb67d91af5598ee1c8b19b0e62a7d2eb21b05f (diff)
downloadRegexTest-796f3691e6966b2d88cd5e475937da7f61a86d26.tar.gz
Implement lexical definition for "ID" (Q1)
ID ::= [a-z] [a-z0-9]*
Diffstat (limited to 'src')
-rw-r--r--src/regex/RegexTest.java26
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();
}
}