equal
deleted
inserted
replaced
302 |
302 |
303 |
303 |
304 @doc("All tests.") |
304 @doc("All tests.") |
305 @main |
305 @main |
306 def all() = { small(); fib() ; loops() } |
306 def all() = { small(); fib() ; loops() } |
|
307 |
|
308 |
|
309 val SYM1 = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz_.-") |
|
310 val NAME = RECD("name", PLUS(SYM1)) |
|
311 |
|
312 val SYM2 = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-") |
|
313 val DOMAIN = RECD("domain", PLUS(SYM2)) |
|
314 |
|
315 val RE = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz.") |
|
316 val TOPLEVEL = RECD("tl", (RE ~ RE) | |
|
317 (RE ~ RE ~ RE) | |
|
318 (RE ~ RE ~ RE ~ RE) | |
|
319 (RE ~ RE ~ RE ~ RE ~ RE) | |
|
320 (RE ~ RE ~ RE ~ RE ~ RE ~ RE)) |
|
321 |
|
322 val EMAIL = NAME ~ "@" ~ DOMAIN ~ "." ~ TOPLEVEL |
|
323 |
|
324 println(lexing_simp(EMAIL, "christian.urban@kcl.ac.uk")) |