diff -r f6c2e8c48a1c -r a526f7f20cad handouts/ho05.tex --- a/handouts/ho05.tex Mon Jun 29 21:13:49 2020 +0100 +++ b/handouts/ho05.tex Mon Jun 29 21:14:50 2020 +0100 @@ -24,16 +24,17 @@ \section*{Handout 5 (Grammars \& Parser)} -While regular expressions are very useful for lexing and for recognising -many patterns in strings (like email addresses), they have their -limitations. For example there is no regular expression that can -recognise the language $a^nb^n$ (where you have strings starting with $n$ $a$'s -followed by the same amount of $b$'s). Another example for which there -exists no regular expression is the language of well-parenthesised -expressions. In languages like Lisp, which use parentheses rather -extensively, it might be of interest to know whether the following two -expressions are well-parenthesised or not (the left one is, the right -one is not): +So far we have focused on regular expressions as well as matching and +lexing algorithms. While regular expressions are very useful for lexing +and for recognising many patterns in strings (like email addresses), +they have their limitations. For example there is no regular expression +that can recognise the language $a^nb^n$ (where you have strings +starting with $n$ $a$'s followed by the same amount of $b$'s). Another +example for which there exists no regular expression is the language of +well-parenthesised expressions. In languages like Lisp, which use +parentheses rather extensively, it might be of interest to know whether +the following two expressions are well-parenthesised or not (the left +one is, the right one is not): \begin{center} $(((()()))())$ \hspace{10mm} $(((()()))()))$