# HG changeset patch
# User Christian Urban <christian.urban@kcl.ac.uk>
# Date 1603806361 0
# Node ID 34132a854d03f07f145d0a92b59031b0794862c9
# Parent  d47041b23498382561694b856fa63c5cb09eb8cc
updated

diff -r d47041b23498 -r 34132a854d03 handouts/ho04.pdf
Binary file handouts/ho04.pdf has changed
diff -r d47041b23498 -r 34132a854d03 handouts/ho04.tex
--- a/handouts/ho04.tex	Mon Oct 26 10:27:01 2020 +0000
+++ b/handouts/ho04.tex	Tue Oct 27 13:46:01 2020 +0000
@@ -864,7 +864,7 @@
 
 \[
 (name: [a\mbox{-}z0\mbox{-}9\_\!\_\,.-]^+)\cdot @\cdot 
-(domain: [a\mbox{-}z0\mbox{-}9\,.-]^+)\cdot .\cdot 
+(domain: [a\mbox{-}z0\mbox{-}9\,-]^+)\cdot .\cdot 
 (top\_level: [a\mbox{-}z\,.]^{\{2,6\}})
 \]
 
diff -r d47041b23498 -r 34132a854d03 progs/lexer/lexer.sc
--- a/progs/lexer/lexer.sc	Mon Oct 26 10:27:01 2020 +0000
+++ b/progs/lexer/lexer.sc	Tue Oct 27 13:46:01 2020 +0000
@@ -303,4 +303,22 @@
 
 @doc("All tests.")
 @main
-def all() = { small(); fib() ; loops() } 
\ No newline at end of file
+def all() = { small(); fib() ; loops() } 
+
+
+val SYM1 = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz_.-")
+val NAME = RECD("name", PLUS(SYM1))
+
+val SYM2 = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-")
+val DOMAIN = RECD("domain", PLUS(SYM2))
+
+val RE = RANGE("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz.")
+val TOPLEVEL = RECD("tl", (RE ~ RE) |
+                          (RE ~ RE ~ RE) | 
+                          (RE ~ RE ~ RE ~ RE) | 
+                          (RE ~ RE ~ RE ~ RE ~ RE) |
+                          (RE ~ RE ~ RE ~ RE ~ RE ~ RE))
+
+val EMAIL = NAME ~ "@" ~ DOMAIN ~ "." ~ TOPLEVEL
+
+println(lexing_simp(EMAIL, "christian.urban@kcl.ac.uk"))
diff -r d47041b23498 -r 34132a854d03 slides/slides04.pdf
Binary file slides/slides04.pdf has changed
diff -r d47041b23498 -r 34132a854d03 slides/slides04.tex
--- a/slides/slides04.tex	Mon Oct 26 10:27:01 2020 +0000
+++ b/slides/slides04.tex	Tue Oct 27 13:46:01 2020 +0000
@@ -862,7 +862,7 @@
 \end{tikzpicture}
 \end{center}
 
-\small
+\small\pause
 \hspace{4.5cm}\bl{$(\ZERO \cdot (b \cdot c)) + ((\ZERO \cdot c) + \ONE)$}
 $\mapsto$
 \bl{$\ONE$}
diff -r d47041b23498 -r 34132a854d03 slides/slides05.tex
--- a/slides/slides05.tex	Mon Oct 26 10:27:01 2020 +0000
+++ b/slides/slides05.tex	Tue Oct 27 13:46:01 2020 +0000
@@ -179,7 +179,7 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}[c]
-\frametitle{CF Grammars}
+\frametitle{CFGs}
 
 A \alert{\bf context-free grammar} \bl{$G$} consists of