From 4d3650365b07bfe3449354ba690d797cc8efe26b Mon Sep 17 00:00:00 2001 From: Marcin Wojnarowski <marcin.wojnarowski@epfl.ch> Date: Tue, 4 Mar 2025 14:42:02 +0000 Subject: [PATCH] ex1: minor fixes in Lexer exercises --- info/exercises/ex-01-sol.pdf | Bin 138322 -> 138162 bytes info/exercises/ex-01.pdf | Bin 91241 -> 91028 bytes info/exercises/src/ex-01/ex/lexer.tex | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/info/exercises/ex-01-sol.pdf b/info/exercises/ex-01-sol.pdf index e272c57ea28219fcdf5bd2b32e2dcde0057d408f..3c674aa25cd281494275c9d400f1dc0124618807 100644 GIT binary patch delta 9113 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 delta 9292 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 diff --git a/info/exercises/ex-01.pdf b/info/exercises/ex-01.pdf index 66648029c286b7711553bb60c056a1192a59fa97..eadbca2227fad05f0517a7f16a08e757988bcbb5 100644 GIT binary patch delta 4395 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 VvXxu_Jk)R~lKSplH3N0({{SGh6XO5? delta 4650 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 G&Hn%ZrIUF8 diff --git a/info/exercises/src/ex-01/ex/lexer.tex b/info/exercises/src/ex-01/ex/lexer.tex index 935d80e..72217ae 100644 --- a/info/exercises/src/ex-01/ex/lexer.tex +++ b/info/exercises/src/ex-01/ex/lexer.tex @@ -63,7 +63,7 @@ digits \(\{0 - 9\}\). \node[state,accepting] (ql_3) [right=of ql_2] {$q_{let}$}; % \node[state] (qin_1) [right=of q_0] {$q_{i1}$}; - \node[state] (qin_2) [right=of qin_1] {$q_{in}$}; + \node[state,accepting] (qin_2) [right=of qin_1] {$q_{in}$}; % \node[state] (qite_1) [below right=of q_0] {$q_{i2}$}; \node[state] (qite_2) [right=of qite_1] {$q_t$}; @@ -128,8 +128,8 @@ lexer drops any \texttt{skip} tokens. \item \texttt{[keyword("let"), id("x"), equal("="), number("5"), keyword("in"), id("x"), op("+"), number("3")]} \item \texttt{[keyword("let"), number("5"), id("x2")]} \item \texttt{[id("xin")]} - \item \texttt{[comp("=="), op(">")]} - \item \texttt{[comp("<="), comp("=="), op(">"), comp("<="), equal("=")]} + \item \texttt{[comp("=="), comp(">")]} + \item \texttt{[comp("<="), comp("=="), comp(">"), comp("<="), equal("=")]} \end{enumerate} \end{solution} -- GitLab