From 379d526d097227da55b46383d73be949e84ba5c0 Mon Sep 17 00:00:00 2001 From: Rocco Jiang Date: Tue, 11 Jun 2024 14:44:07 +0100 Subject: [PATCH] Massage some sections --- src/body/impl/expr.pdf | Bin 91070 -> 96906 bytes src/body/impl/expr.tex | 93 ++++++++++++++++++++---------- src/body/impl/parser.pdf | Bin 43307 -> 44516 bytes src/body/impl/parser.tex | 39 +++++++++---- src/body/leftrec.pdf | Bin 57077 -> 57379 bytes src/body/leftrec.tex | 34 +++++------ src/introduction/introduction.pdf | Bin 30284 -> 29234 bytes src/introduction/introduction.tex | 15 ----- 8 files changed, 109 insertions(+), 72 deletions(-) diff --git a/src/body/impl/expr.pdf b/src/body/impl/expr.pdf index c02de365237f3e90428511bf5944514c9c5a19f9..485957f07804a9c384b6b54e1a8978f4554e374d 100644 GIT binary patch delta 76811 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

#HQ5li@S(jMYdSw)qzTIboq@{Mz3 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

tIQaf7!7=9?WRXhv3f_RuAT* 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 zΜ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%0D-i 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 delta 71103 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 diff --git a/src/body/impl/expr.tex b/src/body/impl/expr.tex index d58b965..823db22 100644 --- a/src/body/impl/expr.tex +++ b/src/body/impl/expr.tex @@ -9,9 +9,9 @@ \section{Representing and Normalising Expressions}\label{sec:function-representa % Crucially, this allowed us to simplify parsers via term-rewriting rules based on parser laws. % \Cref{sec:simplify-parsers} demonstrated why this is necessary for \texttt{parsley-garnish}: transformations such as left-recursion factoring~\cref{sec:factor-leftrec} result in complex parser terms that must be simplified to be readable. -Currently, parsers such as \scala{pure} and \scala{map} take expressions as \scala{scala.meta.Term} values, which have been treated as black boxes. +At this point, parsers such as \scala{pure} and \scala{map} still treat expressions as black boxes in the form of raw \scala{scala.meta.Term} \textsc{ast} nodes. No steps have been taken to improve the static inspectability of these values. -This is evident from where we left off in the example from the previous \namecref{sec:parser-representation}: +This is evident from where we left off in the example from \cref{sec:simplify-example}: \begin{minted}{scala} val f = flip(compose(a => b => a + b)(identity)) // f is equivalent to (a => b => b + a) @@ -118,12 +118,11 @@ \subsection{Representing Names} This makes $\alpha$-equivalence trivial to check, as it is just a matter of comparing the indices. Although an elegant representation, De Bruijn terms are notoriously difficult to work with, as they are not easily human-readable. % https://proofassistants.stackexchange.com/questions/900/when-should-i-use-de-bruijn-levels-instead-of-indices -Furthermore, performing substitutions with De Bruijn terms has an overhead as variable positions have to be shifted -- this is undesirable given that the purpose of our \textsc{adt} is to normalise $\lambda$-terms. +Furthermore, performing substitutions with De Bruijn terms has an overhead as variable positions have to be shifted -- this is undesirable given that the purpose of the \textsc{ast} is to normalise $\lambda$-terms. To avoid this, hybrid representations combining named and nameless representations exist~\cite{mcbride_imnotanumber_2004,chargueraud_locally_2012}, but they become rather complex solutions for what should be a relatively simple $\lambda$-calculus implementation for \texttt{parsley-garnish}'s needs. \paragraph{Higher-order abstract syntax} -Using \emph{higher-order abstract syntax} (\textsc{hoas})~\cite{pfenning_hoas_1988} sidesteps variable binders entirely by borrowing substitution from the meta-language. -This makes it the meta-language's responsibility to handle variable capture instead. +Using \emph{higher-order abstract syntax} (\textsc{hoas})~\cite{pfenning_hoas_1988} sidesteps variable binders entirely by borrowing substitution from the meta-language, making it the meta-language's responsibility to handle variable capture instead. In contrast, the previous techniques were examples of first-order abstract syntax, which represents variables and unknowns with identifiers (whether with names or indices). A \textsc{hoas} approach does not name bound variables, instead representing them as bindings in the meta-language: @@ -137,14 +136,14 @@ \subsection{Representing Names} \end{minted} % Therefore, this representation performs substitution through Scala's function application, which makes it extremely fast compared to the other approaches. -However, since lambda abstractions are represented as lambda expressions within Scala itself, the function body becomes wrapped under Scala's variable binding, making them difficult to work with. +However, since lambda abstractions are represented as lambda expressions within Scala itself, the function body becomes wrapped under Scala's variable bindings, making them difficult to inspect and work with. % TODO we use this but with nbe, syntax - named, semantics - hoas, normalising by evaluation = automatically alpha converts terms by renaming % \scala{Expr} has one binding construct -- the n-ary abstraction. This introduces variables and the need for capture-avoiding substitution. \subsection{Normalisation Strategies}\label{sec:normalisation-approach} One remaining hurdle stands before deciding on an \textsc{adt} representation: how normalisation will be implemented. -Partial evaluation and normalisation are related concepts -- it is useful to view normalisation as statically evaluating as many terms as possible, but since not all terms have known values, the expression cannot be fully evaluated to a result value. +The ideas of partial evaluation and normalisation are related concepts -- it is useful to view normalisation as statically evaluating as many terms as possible, but since not all terms have known values, the expression cannot be fully evaluated to a result value. Normalisation can thus be viewed simply as a process of evaluation, but in the presence of unknown terms. This \namecref{sec:normalisation-approach} briefly explains the traditional notion of reduction-based normalisation, before introducing normalisation by evaluation as a more elegant and efficient strategy. @@ -161,7 +160,7 @@ \subsubsection{Reduction-Based Normalisation} \subsubsection{Normalisation by Evaluation} An interesting alternative strategy stems from a notion of \emph{reduction-free} normalisation, based on an undirected notion of term equivalence, rather than directed reduction. \emph{Normalisation by Evaluation} (\textsc{nbe})~\cite{filinski_nbe_2004} achieves this by \emph{evaluating} syntactical terms into a semantic model, then \emph{reifying} them back into the syntactic domain. -The denotational model (denoted by $\text{\textlbrackdbl} - \text{\textrbrackdbl}$) generally requires implementing a separate datatype from the syntactic \textsc{ast} representation of functions. +The denotational model (denoted by $\text{\textlbrackdbl} - \text{\textrbrackdbl}$) generally involves implementing a separate datatype from the syntactic \textsc{ast} representation of functions. The semantics is specifically constructed to be \emph{residualising}, meaning that terms can be extracted out into the original syntactic representation. Normalisation is then just defined as the composition of these two operations, as illustrated in \cref{fig:nbe}. @@ -187,7 +186,7 @@ \subsection{The Expression \textsc{adt}} \item \scala{Sem} uses \textsc{hoas} to leverage Scala semantics as the denotational model for lambda expressions. During normalisation, \scala{Expr} terms are evaluated into \scala{Sem}, then reified back into \scala{Expr}. \end{enumerate} % -This helps achieve the following desired properties: +This achieves the following desired properties for \texttt{parsley-garnish}'s use cases: \begin{itemize} \item The syntactic \scala{Expr} \textsc{adt} is represented in a simple manner, which is easy to construct and manipulate as opposed to a \textsc{hoas} representation. This allows function terms to be pattern matched on, as part of parser simplifications. \item Lifting the syntactic constructs to Scala semantics with \textsc{hoas} unlocks extremely efficient normalisation, and easier guarantees of correctness with respect to variable capture. @@ -211,7 +210,7 @@ \subsection{The Expression \textsc{adt}} \item Optional explicit type annotations for variables -- these are not used for type-checking, but are there to preserve Scala type annotations originally written by the user. \item \scala{Translucent} terms to encapsulate open terms holding a \scala{scala.meta.Term} which cannot be normalised further. These carry an environment of variable bindings to substitute back in during pretty-printing -- in a metaprogramming context, this is analogous to splicing into a quoted expression. \end{itemize} -This structure is largely mirrored in the \textsc{hoas}-based \scala{Sem} \textsc{adt} shown in \cref{fig:sem-adt}, which allows it to be reified back into \scala{Expr} terms. +This structure is largely mirrored by the \textsc{hoas}-based \scala{Sem} \textsc{adt} shown in \cref{fig:sem-adt}, which allows it to be reified back into \scala{Expr} terms. \begin{figure} \begin{subfigure}{\textwidth} @@ -241,6 +240,7 @@ \subsection{The Expression \textsc{adt}} \caption{The intermediate \textsc{ast} for expressions.} \end{figure} +\paragraph{Constructing higher-order functions} \scala{Expr} also implements some helper objects to make it easier to construct and deconstruct single-parameter abstractions and applications: \begin{minted}{scala} object Abs { @@ -301,10 +301,10 @@ \subsubsection{Evaluating Performance of Normalisation Strategies} However, this required an extra $\alpha$-conversion pass to clean up variable names before pretty-printing the term, since the fresh variable names were very ugly. \TODO{TODO: graphs of benchmarks and comparison (nbe is orders of magnitude faster lol)} -\subsection{Lifting to the Intermediate Expression \textsc{ast}} +\subsection{Lifting to the Intermediate Expression \textsc{ast}}\label{sec:lifting-expr} The \scala{Parser} \textsc{ast} is amended to take \scala{Expr} arguments where they used to take \scala{scala.meta.Term} values. Take the \scala{Pure} parser as an example: -\TODO{TODO: highlight changes like Jamie's PhD thesis? Can I get the latex source for the nicely configured tcolorboxes lol} +\rj{TODO: highlight changes with tcolorbox?} \begin{minted}{scala} case class Pure(x: Expr) extends Parser object Pure { @@ -315,7 +315,9 @@ \subsection{Lifting to the Intermediate Expression \textsc{ast}} \end{minted} % The \scala{toExpr} extension method on \scala{scala.meta.Term} is used to lift \scala{Term} \textsc{ast} nodes to \scala{Expr} terms. -As a high-level overview, there are three cases to consider during this conversion: +Expression lifting is invoked whenever a parser expects an expression (whether a function or simple value) as an argument. + +This \namecref{sec:lifting-expr} gives a high-level overview of the three cases that \scala{toExpr} handles. \subsubsection{Lambda Expressions} Writing parsers often involves defining simple lambda expressions used to glue together parsers, or to transform the result of a parser, as so: @@ -327,20 +329,22 @@ \subsubsection{Lambda Expressions} This is folded into a chain of $n$-ary abstractions, with the final term being the body of the lambda, which is wrapped into a \scala{Translucent} term. To ensure that the parameter names in the \scala{Translucent} body term are unique, the parameters are $\alpha$-converted to fresh names. -The body is also transformed to make sure references to these bound variables use their new names: this conversion is hygienic as it compares terms using their symbols, which Scalameta guarantees to be unique per source file. - +The body is also transformed to make sure references to these bound variables use their new names: this conversion is well-scoped as it compares terms using their unique Scalameta symbols. The following example illustrates when this is necessary: % this is the "gensym" approach \begin{minted}{scala} - a => (a, b) => a + b +a => (a, b) => a + b \end{minted} Although no sane Scala programmer would write this, this lambda demonstrates how it is possible to shadow variables -- the \scala{a} in the function body refers only to the \scala{a} in the second parameter list, as it shadows the \scala{a} in the first parameter list. -The resulting \scala{Expr} term would then resemble the following $\lambda$-calculus expression: +The lifted \scala{Expr} term would then resemble the following $\lambda$-calculus expression, where \textbf{bold} values correspond to \scala{scala.meta.Term} nodes as opposed to \scala{Expr} values: \begin{lstlisting} \(x1). \(x2, x3). Translucent(%\textbf{x2 + x3}%, env = {%\textbf{x1}% -> x1, %\textbf{x2}% -> x2, %\textbf{x3}% -> x3}) \end{lstlisting} -\textbf{Bold} values correspond to \scala{scala.meta.Term} nodes as opposed to \scala{Expr} values: therefore, the lambda body's environment maps \scala{Term.Name} nodes to their corresponding variable terms. -When this term is pretty-printed, the \scala{Term.Name} nodes are replaced with the corresponding \scala{Expr} terms -- this is analogous to the splicing operation on quasiquotes. +This shows how the lambda body's environment maps \scala{Term.Name} nodes to their corresponding variable terms. +When the term is pretty-printed, each \scala{Term.Name} node is replaced with their corresponding \scala{Expr} term -- this is analogous to the splicing operation on quasiquotes: +\begin{minted}{scala} +q"x1 => (x2, x3) => $x2 + $x3" +\end{minted} % TODO: discussions on hygiene \subsubsection{Placeholder Syntax} @@ -386,8 +390,8 @@ \subsection{Normalising Expression Terms} \paragraph{Evaluation} Evaluation proceeds by carrying an environment mapping bound variables to their semantic representations. Evaluating a variable looks up its name in the environment, while evaluating a lambda abstraction produces a closure using the current environment -- using \textsc{hoas} allows these closures to be represented as native Scala closures. -The interesting case is evaluating function application: the function and its arguments are evaluated separately at first. -The magic of \textsc{nbe} takes place here -- if the function evaluates to an abstraction, the arguments are passed to the Scala function \scala{g: List[Sem] => Sem}, collapsing the structure by one step. +The interesting case is evaluating function application: this allows $\beta$-reduction within the \emph{semantic domain} at any point within the term, not just on the head term. +The function and its arguments are first evaluated separately -- then, if the function evaluates to an abstraction, the arguments are passed to the Scala closure \scala{g: List[Sem] => Sem}, collapsing the term structure by one step. % \begin{minted}{scala} trait Expr { @@ -411,10 +415,10 @@ \subsection{Normalising Expression Terms} \end{minted} % \paragraph{Reification} -Once the syntactic terms are fully evaluated into their semantics, the expression has been normalised to $\beta$-\textsc{nf}. -Reification is then rather simple, just converting each level of the term back into its syntactic counterpart. +Once the syntactic terms are fully evaluated into their semantics, the expression is normalised to $\beta$-\textsc{nf}. +Reification is then a simple process of converting each level of the term back into its syntactic counterpart. When a lambda abstraction is reified, bound variables are assigned names from a fresh name supply. -This step is what grants $\alpha$-equivalence for free, as the fresh name generator can be made deterministic: given two terms of the same semantic structure, reifying both will yield syntactic representations with the same names. +This step is what grants $\alpha$-equivalence for free, as the fresh name generator can be made deterministic: given two terms that evaluate to the same semantic structure, reifying both will yield syntactic representations with the same names. % \begin{minted}{scala} trait Sem { @@ -436,10 +440,40 @@ \subsection{Normalising Expression Terms} \end{minted} \subsection{Lowering Back to the Scalameta \textsc{ast}} -Surprise bitches same shit again, quasiquotes ftw +Lowering expressions back to their \scala{scala.meta.Term} representations is achieved with quasiquotes in the same way as parsers in \cref{sec:lowering-parsers}. +\begin{itemize} + \item Lambda abstractions are transformed into a lambda expression of form \scala{q"(...params) => body"} + \item Function application is transformed into method calls. + \item Variables are simply \scala{Term.Name} nodes with their syntactic names. + \item Translucent terms splice their environment bindings back into their term body. +\end{itemize} \subsection{Discussion} -\TODO{TODO: comparison with parsley haskell} +\texttt{parsley} Haskell, as a staged parser combinator library, also has the ability to inspect and optimise the code of user-defined functions. +The approach taken by \texttt{parsley-garnish} and \text{parsley} share many similarities, both using the $\lambda$-calculus as a core language for expressions. +In both cases, the need to reduce expression terms is motivated by how parser simplifications involve fusion, resulting in a function application. + +However, the two have different motivations and requirements for normalising expressions, so their approaches differ in some ways. +\Cref{fig:nbe-vs-parsley} illustrates these differences. + +\paragraph{Syntactic representation} +Unlike \texttt{parsley-garnish}, \texttt{parsley} has a two-level syntactic representation for expressions. +\haskell{Defunc} is akin to a deep embedding of higher-order functions, representing them as a \textsc{gadt}: this process is known as \emph{defunctionalisation}~\cite{reynolds_defunc_1972,danvy_defunctionalization_2001}. +This helps facilitate certain parser law optimisations which require pattern matching on the \scala{identity} function, for example. +After this step, \haskell{Defunc} values are then brought into the lower-level $\lambda$-calculus representation, to be normalised by $\beta$-reduction. + +\paragraph{Normalisation strategy} +\texttt{parsley} normalises terms to full $\eta\beta$-\textsc{nf}, whereas \texttt{parsley-garnish} only normalises to $\beta$-\textsc{nf}. +This is because $\eta$-reduction in Scala 2 is not as straightforward as in Haskell, and is not always possible -- in most cases the appropriate reduction is instead to convert lambdas to placeholder syntax. +This is left as future work. + +\texttt{parsley} performs reduction-based normalisation on a \textsc{hoas} representation of lambda expressions. +Normalisation by $\beta$-reduction with Haskell function application brings this to $\beta$-\textsc{whnf}. +Generating this into code is where this is brought to $\beta$-\textsc{nf} as desired, as well as an extra step for $\eta$-reduction to put the term into full $\eta\beta$-\textsc{nf}. + +The main reason why \texttt{parsley-garnish} takes a different normalisation approach is because unlike \texttt{parsley}, there is still a need for $\alpha$-equivalence checking after normalisation. +Whereas in \texttt{parsley} the normalised forms are directly used for code generation, in \texttt{parsley-garnish} these terms continue to be analysed before being pretty-printed as code patches. + % Representation as a lambda calc has allocation overhead, but greatly simplifies function evaluation via beta reduction, instead of having to deal with high-level representations of compose/id (not too bad tbh) and flip (annoying). \begin{figure}[htbp] @@ -451,15 +485,16 @@ \subsection{Discussion} % \text{Syntax} & \text{Expr} \arrow[uu, "\texttt{reflect}"] \arrow[rr, "\substack{\texttt{normalise} \\ =\ \texttt{reify}\ \circ\ \texttt{eval}\ \circ\ \texttt{reflect}}"'] \arrow[rruu, "{\text{\textlbrackdbl} - \text{\textrbrackdbl}}", dashed] & & \text{Lambda} % \end{tikzcd} % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZARgBoAWAXVJADcBDAGwFcYkQAdDnGADxwHA4AYyb0AdAFsYOCQBUYAJ0kBfECtLpMufIRRkATNTpNW7Lj37AAorzSK1GrdjwEiAZlIAGYwxZtETm4+HGAAZRhVdU0QDBddD1IjGj8zQIsQmztFAAIACgASLgAjGXoCgFoM-hFgMAAzFQBKRxi4nTcUTyoU0wCgywFQkTEpMvEFZRVq0PyijlLZSpnahubW5w69ZABWJN8+82CrABl6SWKoeg3Y7VdtvfcD-yPB4AARGHrmMGEb9vuRD2PRML3SxyGwAAwtAYP87gkUAB2fa9MEDTJnC5XFQ5LhcPEQ4CFEplZYQ2oAdwAFmsWtFNoDkRRnmkMfxBDDYNMiXNSbIuGSqhThHVGvSnLd4p1kF5vKz+sAuHBJExGITBrhwpF6GA8MI4Cp4dLtnLkqC2UqOCq1RqQlqThBKRUTjBaDB1WEAJ56+i8I0MqVbIhyp5oy3K1WMdUzLUACSwAHNqS63R6ct7ff7HMYYFBE-AiKB6ooIJIkGQQDgIEgDDRSmAoEh3HKLf0ZoI3aZ6DwbiWy7WaNXm+H2xDBIoYFh6l6+6Xy4hK8PEJ4QIwsGB+lc4NS8yBR0c4MxinBZMIANZWwaCSDKJhYOBwnIAXkJBI7oS7LB7T64wiwijCHaHKhJO06zmoNCMPQpSMAACginQgIoSbUjggb9gurbLsQkqYSOVY1og5B4fOSAooRSAAGykQOiBUUORE7LRC57JRiAABwsUgHGMUgACcKiUCoQA - \begin{tikzcd}[row sep=3.75em,column sep=0.9em] + \begin{tikzcd}[row sep=3.5em,column sep=2em] {\small \textit{Semantics}} & & & \text{Sem} \arrow[dd, "\texttt{reify}"] & & & & \\ & & & & & & & \\ - {\small \textit{Low-Level Syntax}} & \text{Expr} \arrow[rruu, "\texttt{evaluate}", bend left] \arrow[rr, "\substack{\texttt{normalise}\ = \\ \texttt{evaluate}\ \circ\ \texttt{reify}}"', dashed] & & \text{Expr ($\beta$-\textsc{nf})} \arrow[dd] & & \text{Lambda} \arrow[rr] & & \text{Lambda ($\beta$-\textsc{whnf})} \arrow[dd] \\ + {\small \textit{Low-Level Syntax}} & \text{Expr} \arrow[rruu, "\texttt{evaluate}", bend left] \arrow[rr, "\substack{\texttt{normalise}\ = \\ \texttt{evaluate}\ \circ\ \texttt{reify}}"' {yshift=-1ex}, dashed] & & \substack{\text{Expr} \\ \text{($\beta$-\textsc{nf})}} \arrow[dd] & & \text{Lambda} \arrow[rr, "\texttt{normalise}"' {yshift=-1ex}] & & \substack{\text{Lambda} \\ \text{($\beta$-\textsc{whnf})}} \arrow[dd] \\ {\small \textit{High-Level Syntax}} & & & & & \text{Defunc} \arrow[u] & & \\ - & \texttt{scala.meta.Term} \arrow[uu] & & \texttt{scala.meta.Term}\text{ ($\beta$-\textsc{nf})} & & \texttt{Code} \arrow[u] & & \texttt{Code}\text{ ($\beta\eta$-\textsc{nf})} + & \texttt{scala.meta.Term} \arrow[uu] & & \substack{\texttt{scala.meta.Term} \\ \text{ ($\beta$-\textsc{nf})}} & & \texttt{Code} \arrow[u] & & \substack{\texttt{Code} \\ \text{ ($\eta\beta$-\textsc{nf})}} \end{tikzcd} \end{equation*} \caption{Comparison of expression normalisation in \texttt{parsley-garnish} (left) and \texttt{parsley} Haskell (right).} + \label{fig:nbe-vs-parsley} \end{figure} \end{document} diff --git a/src/body/impl/parser.pdf b/src/body/impl/parser.pdf index 423b64b9f4658a970d7498ff67f2fab4a0a6102e..07d4f67dece738411c8d405467b8ac43b3f1ef1a 100644 GIT binary patch delta 24488 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 Im87u#A6CzIe*gdg delta 23282 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 diff --git a/src/body/impl/parser.tex b/src/body/impl/parser.tex index 5b0671b..a3ae373 100644 --- a/src/body/impl/parser.tex +++ b/src/body/impl/parser.tex @@ -13,6 +13,23 @@ \section{Simplifying Parsers}\label{sec:simplify-parsers} \item \texttt{parsley-garnish} performs rewrites on the parser \textsc{ast} to produce a more readable \emph{textual representation of code}. \end{itemize} +\TODO{Place this in the right bit (I think intro is good)} +As noted by \textcite{gibbons_dsls_2014}, a deep-embedded \textsc{dsl} consists of two components: +\begin{itemize} + \item A representation of the language's abstract syntax, in the form of the aforementioned datatype. + \item Some traversals over the datatype, which gives \emph{semantics} to that syntax. +\end{itemize} +A deep-embedded \textsc{dsl} and a linter for that \textsc{dsl} can share the same abstract syntax, but differ in the semantic interpretation of that syntax: +% TODO: I'm not really getting my point across... +\begin{itemize} + \item The \textsc{dsl} semantics are evaluation. In this case, \texttt{parsley} interprets its syntax to output a parser. + \item The linter's semantics are pretty-printing. In this case, \texttt{parsley-garnish} interprets the syntax to output a human-readable representation of the parser. +\end{itemize} +% semantics for parsley: evaluate parser +% semantics for parsley-garnish: pretty-print the parser + +Quote parsley Haskell: "parsers of hand-written quality" + % TODO: fix the above "intro" ------------------------------------------------------------------------------ \subsection{Parser Laws} @@ -21,7 +38,7 @@ \subsection{Parser Laws} These same principles can be used by \texttt{parsley-garnish} to simplify parser terms to be more human-readable. \Cref{fig:parser-laws} shows the subset of parser laws utilised by \texttt{parsley-garnish} for parser simplification. -Most of the laws in \cref{fig:parser-laws} have already been shown to hold for Parsley by \textcite{willis_garnishing_2018}; an additional proof for \cref{eqn:alt-fmap-absorb} can be found in \cref{appendix:parser-law-proofs}. +Most of these laws have already been shown to hold for Parsley by \textcite{willis_garnishing_2018}; an additional proof for \cref{eqn:alt-fmap-absorb} can be found in \cref{appendix:parser-law-proofs}. \begin{figure}[htbp] \centering @@ -44,15 +61,15 @@ \subsection{Parser Laws} \label{fig:parser-laws} \end{figure} -\subsubsection{Simplifying the Example Parser} -This section provides a worked example of how the parser in \cref{fig:leftrec-example-bad} is simplified using parser laws. -Most of the noise in \cref{fig:leftrec-example-bad} comes from the large number of \scala{empty} combinators. -These can be eliminated using \cref{eqn:alt-left-neutral,eqn:alt-right-neutral,eqn:alt-empty-absorb,eqn:alt-fmap-absorb}: -% lazy val expr: Parsley[String] = chain.postfix(string("b"))( +\subsubsection{Simplifying the Example Parser}\label{sec:simplify-example} +It is useful to illustrate how these laws can be used to simplify a parser term by starting with the parser in \cref{fig:leftrec-example-bad} -- +most of the noise in \scala{example} comes from the large number of \scala{empty} combinators. +These can first be eliminated using \cref{eqn:alt-left-neutral,eqn:alt-right-neutral,eqn:alt-empty-absorb,eqn:alt-fmap-absorb}: +% lazy val example: Parsley[String] = chain.postfix(string("b"))( % (pure(identity).map(compose((_ + _).curried))).map(flip) <*> string("a") % ) \begin{minted}[escapeinside=\%\%]{scala} -lazy val expr: Parsley[String] = chain.postfix(string("b"))( +lazy val example: Parsley[String] = chain.postfix(string("b"))( (pure(%\textcolor{gray}{identity}%).map(%\textcolor{gray}{compose((\_ + \_).curried)}%)).map(%\textcolor{gray}{flip}%) <*> string("a") ) \end{minted} @@ -112,15 +129,15 @@ \subsection{Implementing Rewrites on the Parser \textsc{ast}} % Therefore, any transformation on parsers can be defined without having to worry about recursion boilerplate: the act of traversal itself is fully abstracted away and encapsulated within the \scala{transform} method. Using \scala{rewrite}, parser simplification can then be expressed in a clean and maintainable manner: +% // p.map(f).map(g) == p.map(g compose f) +% // pure(f) <*> pure(x) == pure(f(x)) +% // u <|> empty == u +% // pure(f) <|> u == pure(f) \begin{minted}{scala} def simplify: Parser = this.rewrite { - // p.map(f).map(g) == p.map(g compose f) case FMap(FMap(p, f), g) => FMap(p, compose(g, f)) - // pure(f) <*> pure(x) == pure(f(x)) case Pure(f) <*> Pure(x) => Pure(App(f, x)) - // u <|> empty == u case u <|> Empty => u - // pure(f) <|> u == pure(f) case Pure(f) <|> _ => Pure(f) ... } diff --git a/src/body/leftrec.pdf b/src/body/leftrec.pdf index 743b0dbd32b997aabdd957d7aff864e6988d9f1f..80c9db0609a0d9038f6550e72f196cecfc3abff4 100644 GIT binary patch delta 26996 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%0D(_{fTb-Q)J@gS!6~kPo)Y}qAGQ!C+1nHCUw@) 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 Nu)$MNNh(Xh|1XEA`{4ip diff --git a/src/body/leftrec.tex b/src/body/leftrec.tex index 5ad7bd0..230f9d9 100644 --- a/src/body/leftrec.tex +++ b/src/body/leftrec.tex @@ -19,7 +19,7 @@ \subsection{The Need for an Intermediate \textsc{ast}}\label{sec:parser-ast-moti Since \texttt{parsley-garnish} is a linter, by nature, it has access to an explicit grammar representation in the form of the full \scala{scala.meta.Tree} \textsc{ast} of the source program. However, this datatype represents general-purpose abstract Scala syntax, rather than the abstract syntax of a specialised parser combinator \textsc{dsl}. -This makes it clumsier to perform domain-specific operations over the \textsc{ast}. +This makes it not well-suited for performing domain-specific operations over the \textsc{ast}. Take for example the task of combining two \textsc{ast} nodes \scala{Term.Name("p")} and \scala{Term.Name("q")}, representing named parsers \scala{p} and \scala{q}, with the \emph{ap} combinator \scala{<*>}. This operation can be concisely expressed with Scalameta quasiquotes, rather than manually writing out the full explicit \textsc{ast}: @@ -94,7 +94,7 @@ \subsubsection{The Parser \textsc{adt}} This makes working with \scala{Parser} terms feel closer to writing \texttt{parsley} code. For example, notice how constructing the \emph{code} representation of the \scala{example} parser resembles how the original parser itself would be written: \begin{minted}{scala} -val exNT = NonTerminal(Sym("path/to/package/ObjectName.example.")) +val exNT = NonTerminal(Sym(Term.Name("example").symbol)) // val ex: Parsley[String] = (ex, string("a")).zipped( _ + _ ) | string("b") val ex: Parser = List(exNT, Str("a")).zipped(q"_ + _") <|> Str("b") @@ -107,15 +107,14 @@ \subsubsection{The Parser \textsc{adt}} % This representation also then gives us for free the implementation for lint rules such as \emph{Simplify Complex Parsers} rule, which applies parser laws to simplify parsers. \subsection{Lifting to the Intermediate Parser \textsc{ast}} -Converting the raw Scala \textsc{ast} to the intermediate \textsc{ast} requires the following basic operations: +Converting the raw Scala \textsc{ast} to this intermediate parser combinator \textsc{ast} requires the following basic operations: \begin{enumerate} \item Identifying all named parsers defined in the source program -- these correspond to non-terminal symbols in the grammar. - \item Lifting the definition each parser into the intermediate \textsc{ast}, as a \scala{Parser} object. - \item Collecting these into a map to represent the high-level grammar: the unique symbol of each named parser is mapped to its corresponding \scala{Parser} object, along with some extra meta-information required for the transformation. + \item Lifting the definition each parser into the intermediate \textsc{ast}, i.e. a \scala{Parser} object. + \item Collecting these into a map to represent the high-level grammar -- the unique symbol of each named parser is mapped to its corresponding \scala{Parser} object, along with extra meta-information required for the transformation. \end{enumerate} % -Most importantly, this meta-information includes a reference to a parser's original node in the Scala \textsc{ast}, so that any lint diagnostics or code rewrites can be applied to the correct location in the source file. -This is simply defined as: +Most importantly, this meta-information includes a reference to a parser's original node in the Scala \textsc{ast}, so lint diagnostics or code rewrites can be applied to the correct location in the source file: \begin{minted}{scala} case class ParserDefn(name: Term.Name, parser: Parser, tpe: Type.Name, originalTree: Term) \end{minted} @@ -141,10 +140,10 @@ \subsubsection{Identifying Named Parsers} % % In this case, the type of \scala{example} is explicitly annotated by the user since this is required for recursive definitions. % However in general, users will not explicitly annotate the types of their parsers, allowing the Scala compiler to infer the type. -Note that the \scala{decltpe} field refers to the syntax of the explicit type annotation, not the semantic information of the inferred type of the variable. +Note that the \scala{decltpe} field refers to the \emph{syntax} of the explicit type annotation, not the \emph{semantic} information the variable's inferred type. Therefore, this field will not always be present, so in the general case, the type must be queried via a symbol information lookup like so: \begin{minted}{scala} -tree match { +exampleTree match { case Defn.Val(_, List(Pat.Var(varName)), _, body) => println(s"qualified symbol = ${varName.symbol}") varName.symbol.info.get.signature match { @@ -171,10 +170,10 @@ \subsubsection{Converting Scalameta Terms to the Parser \textsc{adt}} This involves pattern matching on the \scala{scala.meta.Term} to determine which parser combinator it represents, and then constructing the appropriate \scala{Parser} instance. Each \scala{Parser} defines a partial function \scala{fromTerm} to instantiate a parser from the appropriate \scala{scala.meta.Term}. -These \scala{fromTerm} methods perform the ugly work of pattern matching on the low-level syntactic constructs of the Scala \textsc{ast}. +These \scala{fromTerm} methods perform the menial work of pattern matching on the low-level syntactic constructs of the Scala \textsc{ast}. All \scala{fromTerm} methods are combined to define the \scala{toParser} extension method on \scala{scala.meta.Term} -- this is where \textsc{ast} nodes are lifted to their corresponding \scala{Parser} representation. -The pattern matching example from \cref{sec:parser-ast-motivation} makes a reappearance in the definition of \scala{Ap.fromTerm}, where the arguments to the \scala{<*>} combinator are recursively lifted to \scala{Parser} objects: +The pattern matching example from \cref{sec:parser-ast-motivation} makes a reappearance in the definition of \scala{Ap.fromTerm}, where the arguments to the \scala{<*>} combinator are instead recursively lifted to \scala{Parser} objects: % Use Scalafix's \scala{SymbolMatcher} to match tree nodes that resolve to a specific set of symbols. % This makes use of semantic information from SemanticDB, so we are sure that a \scala{<*>} is actually within the \scala{parsley.Parsley} package, rather than some other function with the same name. % This is much more robust compared to HLint, which suffers from false positives due to its reliance on syntactic information only. @@ -192,7 +191,7 @@ \subsubsection{Converting Scalameta Terms to the Parser \textsc{adt}} } \end{minted} % -Where a combinator takes a non-parser argument, this is treated as a black box and kept as a raw \textsc{ast} node: +Where a combinator takes a non-parser argument, this is treated as a black box and kept as a raw \textsc{ast} node of type \scala{scala.meta.Term}: \begin{minted}{scala} // x: A, pure(x): Parsley[A] case class Pure(x: Term) extends Parser @@ -226,10 +225,11 @@ \subsubsection{Building the Grammar Map} }.toMap \end{minted} -\subsection{Lowering Back to the Scalameta \textsc{ast}} +\subsection{Lowering Back to the Scalameta \textsc{ast}}\label{sec:lowering-parsers} After all necessary transformations have been applied to parser terms, the final step is to convert them back to a textual representation to be applied as a Scalafix patch. Parsers can be lowered back to \scala{scala.meta.Term} nodes by the inverse of the original \scala{fromTerm} transformation. The \scala{Parser} trait defines this transformation as the method \scala{term}, using quasiquotes to simplify the construction of the \scala{scala.meta.Term} nodes. +For example: \begin{minted}{scala} case class Zipped(func: Function, parsers: List[Parser]) extends Parser { val term: Term = q"(..${parsers.map(_.term)}).zipped(${func.term})" @@ -242,7 +242,7 @@ \subsection{Implementing the Left-Recursion Transformation} \TODO{TODO \\} \subsubsection{Success...?} -Thus, running the transformation on the \scala{example} parser yields the output in \cref{fig:leftrec-example-bad}. +Running the transformation on the \scala{example} parser yields the output in \cref{fig:leftrec-example-bad}. % \begin{figure}[htbp] \begin{minted}{scala} @@ -262,12 +262,12 @@ \subsubsection{Success...?} \label{fig:leftrec-example-bad} \end{figure} % -This is disappointing, to say the least. +This is... disappointing, to say the least. There are \emph{many} things wrong with the transformed output: \begin{itemize} - \item This output is horrendously complex and unreadable. The intent of the parser is entirely obfuscated in a sea of combinators. + \item The parser is horrendously complex and unreadable, its intent entirely obfuscated in a sea of combinators. \item Having to define the \scala{flip} and \scala{compose} functions is not ideal, but inlining them as lambdas would make the code even worse. - \item The parser does not even typecheck -- unlike classical Hindley-Milner-based type systems, Scala only supports local type inference~\cite{cremet_core_2006}. As a result, the compiler is unable to correctly infer correct types for \scala{flip} and also asks for explicit type annotations in the lambda \scala{(_ + _).curried}. + \item Even worse, the parser does not even typecheck -- unlike classical Hindley-Milner-based type systems, Scala only has \emph{local} type inference~\cite{cremet_core_2006}. As a result, the compiler is unable to correctly infer correct types for \scala{flip} and also asks for explicit type annotations in the lambda \scala{(_ + _).curried}. \end{itemize} \end{document} diff --git a/src/introduction/introduction.pdf b/src/introduction/introduction.pdf index 1c0617ee1905613f3a93bfab5e9cb47862fc12c4..2cab163c86fed7b1f9ae2dab13c2df32f2b0ca7e 100644 GIT binary patch delta 14842 zcmajFQ;a5T6NWi$n{Q*3jcH@rwr%hCFOD|ZO`b}sDwXH>uDhY~85_kNxT!B?@t&+s4VnkD=F789KV89b3zL3D!-6=aFU~(UcEqWS zzsZhpx6_LP)h0%IosS{COQ&A3+_SI9d}71hq(&(RTVic{J*$1>JuII?OxQ72zv$!6 z{;pRO z?a*$vf5(WabtKoM9eJ?o)!t(}6K+tuE|4pJ-TmgMaA*@=Np-*}=l%dzM(<)?-_=E5 zA|x=Z9vkM$kP7zx;qZEYqw~2q4xk-2B1e;HLa#?!3$(j02;GXx6Rq_brnpJNxj0JFj(hWo_7!{>xc7C8u>sAEK$~%D!1d zhMHkMXbVrqj<{l`?Mn{$dNG1fbuE^t;9axs=xq5(1EmdWRh*9LU3UQYHvR=meQ3sHNSVwVo!_S-b@I1!s=kXXeNf?QU| zGlk+=KH^ZCb&6lwnV}sakxG|~BT;BxPome-I+&#iVxd)rpfxHM-Dn~&=IlGw!+#0O zV}@#cah=0H-d9a|#;7_ly^&~hGOWN%#P@Omdby--suoNF4g0*~&je&AhQ;I*wlwb@ z%u6>kdg{ku_%SB%^n*;@IYa+(d*$&8phHfrQM&mLE$u2#v~uZfoYg9P83F>i%#K~w zkxs)?w!n}J%ROizeFY7?C^NN*MI(i<(zI>MUxz%L6PIb;jhp(yqH!TE+#NsWHV|}0 z1J*EdQxqzUg-g;1ysS5Wy4T`I2$jFzd$tyS$ z%jP+7Ek{`?zEe&J6GgDtBK@v%2adQSX=%;=kPgoda;AU0g}lb>#-vzMq6BqhiPS zN4l$#YW>hoU%8k5L5^*2xo-g8qryr>dta)ZTAOol1 zzg?%4mtjsAbo8dY-IAz;LH1VWzM5))K>C_V=}&4KXHN7*V7bl0G0v)xDq8tTw{~gO zpu1Fyj*#ecDtAl1g@a6GQ-6As-JPP0&C3j$_(cKCZ(5jvc}&inV2>R$-vC=GeAs0C zc;?)gKE}p(O_ui-ub-Ebd4w0rLl@(X;JuHJGGxH7^dt^me)T_RzJKJ=#?bDE=iDb& zz|X3eK`4OS{Tq zXWQBh6LN*0#HF(_L|1WV!9V7D>U;HJ&C)G_HG9l5HE}&`d0n$!K?p3ssYMx3!Xzc1 z=n<)RspHgXXhT$#pAOnmK((mHt8z1f!I1&+s}IFjn?M$d%tic+H6DE4@H>B0JZot1+bBEN=FZXc8t6bH*QRc7D%B$3#}C!vM_5!Y z%|fgLsMgs=2MaBT*|q(ew@{qQobWOjO8lCj%NNn+JK))CaRX?BhL0tIQb zmJhQ*gil-QBr55a8?w0P7_`$@E-z0hND#*CtBn~6)x&bZct2^w7Ku!Lb_OAWMn zpBJZMgv|e(%V;GD?*f`Nos9iDAl-m$D^V-ml!n-3l7TFnm@fzDm5LChIq1xef2Pn< zy7mJ8dl?*@jU}T5<5MzEqvhyEL6OUp7D6+rQ`8`554zNG)H69uY=v6)=pqWTCe+)F zn;hAfKx4$>DSwKnUJ!Ry3p^g!N*+JLKi|L06`i9}baNq=^b`DLL6R2Mrh$!hQJsoJ zqrvms($Fk2gHuxrH(v8=wv#ztkH;fVc<>rmM~PgRO4>dcW1KZ)WA@@|Uig2qKN%m{ zm*tNA%D&eJKi(Po)6O`nB}(Nj8QMUOTzBt>puJLeEK=sM=-CfZWqL2l3{y_+xCa;7 z#t>#>t&;id5l-kL!$X#&U4WW`1lTlx*d9-`G(21T;(f(YKrKX1ml);kyI5!b7$g=n zGFrpYmD;2S>Oq$(Yze>yhriW*--A|?-9ig-;agx{aimS-)sbjk@8UZ!tRJtYTYG@V zZLzIKq$;bI|9O~->LRL?UR^-Tr9{5-ddA?&&<;l)i$!7~wt0-98U@0F|NR?vYTGen zZN}z+-5}jP#)KT?2p~6M*!#p zh(^Xpiv27z4JlrAgMj0`C;VO0xyObY!sw@Gzu@KNkweikOwc5(6|Qt|0zg;IIG*Yk zMSg*WK|_CRmBzxc`jkOVhFgyu<;A?PLNg0lU6|u@kL^R7uUnhqnKF-4fp%w(jhK5C zn!%mxOd4x%bhih?Q+s7ptddGc<9Lea$Lla~V#spZ=Pi07#RGF)hZkni?;@3S^EU$r zeT2FfrTHTHyfmR<3tj64Xb-P{V`gnTcfXFlty~J@l$3d$di@)T6&KT+^P?3QV|oWx zF5PwnuV--mb2qlv-vL}&o1r=3p69){_FzX?o-rEziumZ zYspOyG@$aVA%<-L)+pzW#f(~PcaE>Wl*xSSlJykS{F~t|-MUe5BPZBp{X9JW+C#t(l{kXKPDH%n_6u z{fDvhU|JyT*)kvI^s}#d4;4q-{8=su_@eh%QwL(Dx?-Z=#b0Q2GXHEr{Ej7fXzZg?2;OiwEp_JX!b1v-qXq`25n|8V*$%~AV-%|9^ z3S{Jv6sVvRg$c~DfG4i1u?yc|y)EY5Mmfv#v;^F|z81+$jPg1>om6GSnE}d-qj=Wz zc#ta>MT|*u z?t+Gf??;Y`&C6Pf3e_F&Dq|S<3$s5OdqQi-`tNN~?+)k}B%(TI4POF*N2vrQqS#c8 zD-ikcI3{ImVX!o%?D~5jJ6CGu)39dtrY^3|W=3}Z%N&fYVL3Sn843TF@bVHeBzKzO zCF^1HfO2vs?=c8Atz$dDC9`5vH93<)f+pYTQzaWfU?sPc6aJ^$_ZS44uqmP;lRe2P zn;{wL;>iy3%97@PJOGGUW_87P|yxsO1SYt1M@Ss0TWcmaTF#ZRn7v!9`fU#iZyq|(V1OrxBU07{?^%Vt0Z}83PTVvArK*PCDV%T>yZy| zg5H}Spz>+|o72-dhVx91|BI*p3zwTo4DOhtiwlXz)vaEy-%3ub(twc^m6B7%U!K9F z!a;-e-P7bn;4*87s6AmW@MicE_ zeRQ{;X#!aLt=`{ zBgRuIit>Grr(eAOTI9`sR`8GvmBvlTZ)Kqq;A18MnccjsrA>X6?>Cv!!ye`R%3oe~ z7?5I-5OuI{Fw;>}lLiETcmeS&d4`VIXaEJKZftB5R1@alv3`IG_9CDOn}N}sMc;JF z=rj5b)r8)J{{UkYbX0hhc=RHsBnBfUHAXF_4Z8|pgKY!2z`g+BV&ej`v9kd>*gAj> z>kzNG7pA27@f|CFBEG1fcH}>1fCei$qkKV4|(4yJ{Osz7CFhC-C*6h z$*H^?dH6s;p8y2^hUC9wr9&PSzfykzyT#_bvw_8$*(>1ndrUdt=T7aB=f`Cg;VWqh~hz0XBgcUa~ zp9_mVFxyLVpoh)Mes|jDdb~MogA7885xtsB^!^i6i+=+Xl9vcX#;to*t#*`5EEY4m}Eb`B*!efo}TPKiR#bh z0C8*ViavZDx0_KwW<*Kf5`x-w96+jmIZd7r7ADb}}Ki-l@V`pcwNbc`OnQp)qVA=Z(s zq#5YCqgA(u=JKD#9Ntf|P)p-ZQa?G@=t>x39db7a%~n;|_0IWnTFr!|=;^c}PilA? zwpq+h+;2>%;Hk5t7?L$r=+qLz#p5t6#2U-hDwA5&O-#u~_3v2&&2QFNa1ibe+J28g zaU<#NgN)LI>yy+k&iOs<(@{zmfOTI8E`bp%ep>`Mw7VJPy`#upTV$7n`6Ar;UY7pB zzgWvwAD!~ag?a%~A2(w>!w=YMZ@6L3Ny5&`N0T`ebEL6j??nHpb)NbCsyUa}gWI+- zkgYbMZ3p(oD5bvzB!KXPU(S8#3)phvznI$1+i`Mb57f)+uzy&8egYHSJP$3 zQK-1wjhG5h+@5;q^%y8t+0o@rbbY-dH&!cyaxW`8Ur1Epy=2#Q7D&LYAAJ`y+3Ua^ z`#BI-Q)P$b{}VQN z4McucGu$Pg+PLM-=?%&Y;-EJuYXg$hW;8(zYvrI&FnsjNz$Q${*8am>`8PiRxF$0BiBx^JTTOowOjBdAP`TJY zhBTQFz6wz{Hawty9CgOC`Z*^;CdbE;^l=*Qv*#grgqa^e7p zRW54?lz}mRgf`9dNWpB?F2XK?Iw*O@uT?{H;821|!ea@|5pZ{_r`W@;( z5X8W1OMrhHf9tkrSF;5SVNjYs{(KVhHWvUZ%y2U(a2Z*3;H}{!UVu&oGx0%jGP1Wq+IAmmMGB40c9lE zaCJa5bYZKLs(5NlJo_il!R{VU+#yb;5?wdKjpZY=GmoCDB=CwUpX4(%{$Y)js7juC z;G8MWK+=G~I9?IRl8WRi$4|2aoPbMfXpkd%If-n8PHL42JJBN964lUXQ;8i?U$!Du zpJrlL-#X7ZD=-a8_#pcYL2cKIxl-xo%@+9FU=BK?B!3Gw-g zq5RiRvpfDxoDsM~dGbV; zAMdRRJ4*K)0Uve<C}YXRZ(>=0@scCSuh3T-a+mGc8$#5f%k4+o|1@9 z2Hm~AojJhcZ++d$f7ntjamu8M^6^+qN|bgeR7qt-$D>5 zoS0Z=3X9)|0;(EFTkGpAz|xO~8K@_>X{~-fFMbTA#xnJhKFRk$c=O=3JEj3GI_nt- z2A;1g{cr(DuY40d`TK3pTL0`uU-s|r*>$T$hxe^0;vJbcQh)ZFmViHGE^V&<`O=1G z9oC7uq)H5G6j?8g4Yf$;D)t9@xuw!jUWFZRhg92JWPH&z!)X&*z?%GrIDG!+>$YXN z3)&DVeMwx`1%0cYQ_AecNYCvzcE2nv%C5Lv2!XEAB&>^+hL+57Q~gURU2W;CD9e_> zVQtt>vhWIeb~+7ZaCdb~h%K_Z1Gr4hN#)meaSZW^qyHQT$Ow0suT|xuOy+~twW_r1 zb)-9f^Jpep7O(sZV374+Yj)2>4!KDul)u>0D+nS7>&q95_TRv8nfruO#N1?;CUfU0nRighb(c+eDhzTbP zEV3Wj7wg?fo(`%EYm5@cFG;R~kruO(n zH4MANiT8XV8&TaU2FdB3PETN99Y(|W8>>q5_ENNLt*gy{NpbyMqivjgmA^-Zwxne% z6!J1d7TxMUA3&uTz=$r921BwnHIge^x`Gv^P&-1=bWXC=l8=zhtD6!AsZ@o<@Ru}K z?w;w&2TsG5Fq?9LtLN9vOHQ||+pwM@h&QPlO_-Evutnj&Dj0s^-@@)r^|cc+(z5V} z{Tp$tvc^R~c>Vi*#2|d!8~PKqr?Fg|C^%B7hzlnd(d8Zao^#FKmWF#hb7tT?fB$Eu zXzim2R0Zq~BU=C@Z?|C^Nx)Zw08l}WrYh!z0rV8}D{wRP`N+X4ed|9<@Y#m)?D1&+ zZ1PV!pg5;02NU27E3)eXL4{Om=J@EqX%Ujbs#p8_E(xK)usEkphRdUzQ7CL5TH$)OdjX0KI#V+&$^P4i=C&Nv9@ua~(&>7@W6a1&8XnX}z zJZ#k`Y4#v}+X>H#!c4qDJfQW-xIPw+7dSBssJvUI|E}^KSZYmn5z;;>XpyI71HTA z<&Ws-Ki9-nC=fQp^}ilg_fzVJkoB^s_w#3-_z?OV5IPK4z@&p9<_RER%dN3FEs3g} z>bP>o`Qc?GlBSa-tF}fY?K&lj0dq0!LOW8XDry-lhaCL4Z}k-9^>j(B{%J+QI_1iz zm60W~yqyat!bq&|oqa5}Gpj^)&uQ0D4}KsiYay8GRB}-ywmECBenx2E&a9@gAs{w~ zX#~*i5_;4Ey$LBVJr{Sf!I^tVDk&! z?TrX+s)wZ+QYKl1b}N)_t3 zY63~)Tj#tQ#6~Qz7P<0?K*+pzkkE$_q&j$G_4*k#b${B+VE-p7h=R28`$$hC$?bFA z4$aIG(aD%$%I%rpF3sqW#_1#_5Ia&-#z6^#`&)rSi- z=&3Zk{G1rrb&zBvE+FpR?gs&8C-3dAlXk_aplxMNr+7w<*kywvprm3_6x^E?z-gN6 z2tz`38MCph<(qeP6buD;MPu$KVJy6DjL+47cft=&gxS^!Nh@6S5L~^D4GuS;ds&4G z9WEw(7RSU{_>aq0bxAT}Km=slG*v|`Mag`E<1n*{e(KpCnyqXRv>9n!&61$Jm` z41gJ>Oi_V$IfvT~Jf>S3|A&*OU7%VOsbj#-&h>b8zW2Zq8dXL-ICz$__wbOx%EhdZ zfQp5dnvs{4N+>CD(XT*znazZ8H))^-4&`3RXWK&4SqIgSRu@j3Z2P+jx$TqQD_c!i zR3=A=_VThkP~u;Hg0A#Z1hoipV14EB~KeixQy$bE7f~#)l>QwB3-6PjDVwL$tJ-T-^-S9Kn&^^ zx&&Q~AnfNJhA{33lvw(^fsCGU;VIJvd9z4UVl{aQ)6$&z-#n% zOnRAgzXkWT%5@Mn>Q((^-w^znY(cw>IOfsc#4?_EinMonpYKY8zHuVUw60_JaRNcO0S$AK0% z8SyX0G{MSD*^ULNS^{s(ke-;cEBsR+Md{ddO$j^>m(UHl3%WP_x_00e>FOZMmw?Mg zQ%pIzUNDDYilRQc1E8EKINOQ`%?7@gzyibsKIVOZ_@YjgHxU)e8Rx2nT9f6c$NXw6 zu53#7S{2LqJMo9K10sZwEO275jgAxg_|y3|x$5+Ilv_xd45#p7@@+T!hP@|V_Y)*A z1|vwV{PFPWAM#*W9}SnQye*E)ZkM>{%j%dhP9Q9iY-4?vwo7V93?-A=+En`hA=bGR z@UmUfVuo&{s><40vbun`h-h5E6KDw=h!GWv+5;(Ew4&$-5v9<{rH~RerA(2*-EQS*ay*$*Jx+I+EB*N^D(3+hKxpFrI|zuyhPOyOi{TcRdb zs11tj?sy8F!aEOz8%li-^P-3)qUR8`+?ZGEMNuS0hz zRb$LwHV?0Uit-9=zVgE~_tnRkye)^YAI}B+n@~liDzx$nQKU^eoLB{|kW?oGDxUq} ziBH}qZl4(o#~!*Cs)iemYPaK~&*PeMNPbi*`egr7c%@tYYprUah)iu7o}jp<`Wy(& zZEf0do{Ryzd{<9@I*D^!V-(RgdQH_SR~YooGp}!z=*Wk3ZCYcm`@uJ`X1~jGvcBoM zYlaNLyETAu;(E=aTocgu!PdS3GoiyT7bLrpF>#>xO^@H(-4GA6N~vypKVx;?z(7d%z@jQK;N-Vp+c+X> z{_@(Ts%(zC3Dj3LuBmfC8SbJw!H=@-oyka-J1+$!boIBMo9lz3=3T+3-xNr z4uqn;V=u&ZBZz!TxgKEM7RuI5m`*vQLKB7zoi#FcfYumYbOU6q^N;f11ViNgT?4$xd}vv@?b<8o>#oK%hB znMg{OHO(4GP>(jrr&eQ?OUAoWdxVFJ1UNtUB>F3879#u-@ z+;qu#Yx!CSX3BRlYAReZshjHDO~A^GeEeMJb~#vt888BxIUF8vyDxjH`w&**2HiM2 zM|1LU{}n>*)f#C%S#?RZkGUyc;khUh1>o5g-TYZaVn>)ESE_m-YYyE3*NeUWBQ)Hz zuyHGdM70tr`zGCb(>vbW@(Q={{lVw?6?L$`l=tNTB-$rsp^njZ5C8mA9t{mgsTCx0 zli9TUfJ;~P0XlyBY+{wai8s+Uo zZCTKB6|w93JP!f%emJ3%??y#5AK;b zV5Tes(Q-;)X*|1NXj>{4yZhUP{xMsA9r#O@h0{pI7RwgQ*H=(a=nv8ezts_uX2FMw z4k9K@hF;uV8FDu@&#B7eS@^4C_w>ZDDnpj&Pmj{eTm{iM=U&8S=Ja2WJBzB4BZ_1= zeOPku--r}sBhAZkW=z`tDAp2AdJF zq2Mnne;4;iz;?5^5$6raOj1#n50YLc86B!Hq^2f!e8iZpc0q`;nZ}6tM6w4{}=S@ z`f4(o2uXgkd+KClsjXi$z<}2!@emx7^Zr%M7kT-YuN{5FKzH`)LV<=p2b5-w*!*57 zsk(m0h>1!nUk4gPYvsR^;t5I)%+ocLvvm?H(@n8JHN`9)POZO<*+?EaM|vAaz<`6u z;;RKsUV6(ZomiB^hJYP6IViiP^-);?+loHvL+=Mpq+&+{g~$h@=U|HriP%w-6Iv-9 zXv7@)dL`cz?`#bNm2<6KmytTyrl7hUo(`$V)Ve)~9+XDUk<__3SJVqm{Ef`U+%`HQ z|BJYQ(hY!UEpvDxSIT_CQ;vD=$kVuqVS3vgOU z-@@-Ju~%dsHwq?r>JOu33PKdS6HRt<2&{kRR)jUP8!~O>5Pk4LZ9|1o3wCsNg!VC1 zs1*%ev68*wDVuGz%z{MAxR34^c8Aa>^*6W6GkYv~;A5Ha$T$6TN}zc@uq}hO?9RG$ zi58ly;90@@VD{Lcqsc3pa5} z+^e77jKu&J12`DRt@9Y&EiXt$^^Xdli!Siyxfm_~_Ol5d@&ICGr*8TVH6wQtZgOhZ zs;H=bemumB9P=*AYWGJD^Hxsgd!)rzmOZ&KvFG}E<@9OE&C;U$9js=6m-ioh7C3%}&51X1l zw82yZ-&JLTN4CMk@ge({2A_-A$;J4^w-sn>9=edEeq7i?!C`uE&{GcrY&<@7DqZTW^VE#!4>m1UTJV4J4NOe`CnEtc;7;EC53oo!z=iyetDtOJ zHk$zfW#URMwFrb{VrFJ%VNa&B#Q%R%MavL)4nhWTD`yv1LUvZh(Iavjb{rlb&`I_iT~^4Ht>=|)WCmK-Ti+i(VMzp0xx;e0 zt^^>)iNxVUd$&`Ll+0mH$C)TeFmVDE0JGReSx@qgQ4vO~ZliK#VQF%Fm1Xc!&c%fy zMdqu}ZIvuQ$(?=XojeO&#u8qIc$BmqFoSI~2)p857RsFNWJ#eq!BK?~v<$!RkT3v`N;2Y(n`=c~V$Rwg+n zVhk}PJeUeZ#5ZA_Qt`1%#2J8}&C0StMw;oY29+l7!<8D3Yyn2@TT*Fa_hCA_l{-O3i8a zgFBT7o+U7$lKlqAXqUyb`Nubtfn!BUCMG||0Z;~m*ox5yP1FTrbOkj)&ry{KMly_k&U@@mj~KAHdix%(b+)>R)%c1>vbF1mE#ACJr96>R-XIfmfbgE7KV zKNlaZl(@^Qng^4m8(1I4jD%+=Gz4r4K&rK6{ zd8o&oXHLs+0nbu9KzF-@kWF33LSn@O=DOto`I0 zecxREq&?KNW&uTtL_V8<%wG?MV)!~_y0g9r-0aP3ka$(f+Y21J1LrnI?tx3oc|zo2 zE|*Zp$ZN0wH?}UY(H%T&;>0i+AE+1}L)So*Y$-pem|U;}cB4^@>hFme2{K_EKrPrt z8~CPy-%S?w^7nDpP0A)`oZg8~TlSj-aQfA}eSQ4J9_VvIa@`B`+&#bkCccS#D8pl+Hdq0|Nw$Uh$pYrDy&tNVLdEyLno!CAY$Ub9D ze-L6n@t40+iXk+rw^%-ftG1NaB06A&l%HIl-J!tChP$O(N;H|3v=-&g)eO0TA;!yH zf9$2q>n;&l8=5GxI7Yr3c8VLAO39eENv=M}R3M*|c-h>y zgRKM=eoVriW>9^DzHWeLm7VBMR*#-NoJ8;EB3#b(FzIUtpqMa(hkJ#7?TL zOSScLf5(}h7rRh7UUsv`J4=e?U)K00O2s{v76~6jb&Xa*muo-~_hF;TAuEuVJA2R6 z;kJ;qRbUF_ZXb4RNtlvED4(by#kF_~ujb4y#)v_uJ}?dsN`zk^i{)a`>y%XU>5CK<#~2#& zLWZ|HS(Uh9QxrnlrKOaArt+bgUZBi^tDDyJQ*aP?<%$E5rhk^fPVNLE3{yQEWd-Lt zFs)C9=lg8QIx`!_M13kpu|^0?N1FrRp_)_OKZ6w|*~7EkkmRgvRMN_ov$3o#{|kC) zpIF)uGH-@ofN}_4K7Bhp;fPzHj-ifM;zx68^x%lNTReghb_Sp3{Q6W> zvUw92I8N7?rGnY;NTt`oEtCo@qD6TXR7yh}UtgV4u85qbW%?IU6+?z4 z7ILd3ik*>^bX}^HND{Z8*lH9E>6$q?1e~X^R57oNU*(5N%G`nhElnEg+wm@ghwPwYJXPB|bNA3d|2a25Ia14H67D4YTO zy~Tqzy6{xRS^NF%Di~OdLFJ50IFL2#5 z+|%0cRbkuXys|`MQbf-%dWO*`w6DPQJ`Ar->Nm$4M&xX1?abE8uR-6pWo(1RtIkm7 zUfF`q;C($n>@y|q(PHQO;Pn;KYRO}JB;khJ;2B7_T#P!N`QB!>QPH8r3dTe;Ipsk615&+D+}}vTU_GH zDBTUKGo+(j9KbO*fv{P2ZCFNwYo2!-g4l$owSce}^4P`vSG((e*3Th0T`NMDfh%(5 zoa$jgHO@5^^oq%-g2Fw|CC(w4O^lFIG5V5-wS?!BbgEcL!|E8?Y+$$bN0bFB-C{SI zjaTM?wFpTy?2~|9CubGvcMq_79Vaz@2d~%j$#fbA_fz*6TFo`YwJSp$c^Adu9LmRV z!5Hm8-&>gT9>WrLrfU_xYw(zD$UuTpZ&)vwGA#(#_vLsZ!5bfRQ zNaM~LdQ5(M3|$Od0s)KVC)e0z9+SvM-MXal&SQOF067#Er=;_@cDK_&m;yF%25@QCJM+9Di7EM*_ldy)b>#{DdJO3)IvxwrvSSjO>&V zRR9NB*ME~AGIYIB z-{g&4RSU+`b`|@hJeAUd4{v{mn3s>PTrlvle0Y9Yv{#~4r(^$pNyeJ)DkXD z8Tl%7hJC-}gCXC;t1&f-E&(|rKW$d6&52ma)vFG1anpkqp9E9-e--|d#OTSO;AqLT zt|&kzLOntT6)SHuLMCP=LIw>&9YQ8T=Ktcqwz7kRD%BG{dMIoVHkamIYvK9mNNl3oK$8P8BhrYKySeZ|^;Ff$+hdl~<2#h4hT zIBdC}Cx2;Gk;Hj*3aF6oi_A+MMYEtUJShgA4X-iGKg_TZ!_9m}U%Gu$H!5W9ZE8&k z-SztOj?qIhMsT|`h7gzD0*0^$C@0EyQGT1iA9zMtWVr8nY;r}$YYtI!mm2}pcn82+ z6$eo<8v?wV=Y`P_y8C6)%MR}|buUKo>*|A6YV#+aY&yJtf8e^_Enhh}f5dNc#eS*a zZyyAA2^?ML`mRR#;p478&WHFu%6z~7KEF+#cNi#ufr_h~rW-}Clb9VZrEMB-#QJ4LLd7LTk=#Sj}CwNMJkdODA_ zH|Xj9-e(O{Q69_rmc$qvOZCu&00>IaN1wY&$zv{dXJ$zzT zKU=)>C*Dqyzb)K$`g}cIhp|LPmR32{0iTIM2p!W=vKoAda$gG^HNzNb6*Lpxu3SFg z>b8bYo;EU)B<0%q;BKOvCVS1c1o%Imh?A{gB{zBNGq|@J=0_cTvt&>!ZrWPfiq$(L zT~|+s>r^Rv0NTrm!B$7C5B<7ud*xkzHHkFMo*MYP=edg>+LLEjAI5n;XCE4UzN!tv z-1v)l2Cp|ad)u`G9=LP-evYq4b0>y-lV=ert99cS0hhMDS$()>CRDw@mrtv$g1zT8 z)ftx6v=fE8TIH%+NJ*=1RoEZv8x%Wggi*tVPLw+AfJsJ^4&7tsVu{i`dsT zY2Qw?53P4Mkmo6ZOR}~Q@5@#37l=^$HFHDXWUjtC@b2-&$B!31$JcF1fD!K z1y2Ubp*#{e#|}|=S4Hcy7cznUo)+73V>nmEiMK^T#jjhzdU5PqH7EU=sS}EKo>)Si zt4AAS09)#hqg;}UO=UNXIrirE2*Nej!vX!+F!wS=f|bwaZ1ApKq;XK%k0aszmWFjE z7_mL)#;{tyo5973PkNXZd6vVSFQJIpPELAcfBj|o^Y98H@8&)k{kDvO-!`p4%nGmx z?i`tND~PJobzTPy8Ya^+0~#UI*1^;4TUL%Spp1ng0%Em3pH0s|Z`-z`pJ7JcXnK@4 z$6{z1L-Ew<*S9`%nq=N0I9qBTJ&ma4j!L0Q;@=>;eVXslV7DQMNm>KV=@1iD$7K}e z_1d1Ci&0jKEMZH8EnYCSH%rN;hW=HB;!T!H-0&7>MXbw;BUe}tgnmS*10zl-2K;>s zKo+-7!I#_%pDII0LlIn!W3HJ?r(opISGZ!^DZZqVhQUgHImE}05i2(wqgOM#ueU_% zD3yj&TR9}%CcPzI^^9Z%x7%O6KR`-0jYfgi@4=&_XmqCoBvihh{6cZejZW${R$%{V z)@@r2+=E1uWcWs0d1x+=>vUsJ&w0{r0HEMCwSxiV2ZN7(MD;DhI^O%NdrGg!bD)4O z$eLsX_RVYKtz~CnhY5@}O1HMR8qHEqm!>~?`U>XptCx^4;GrV@M-M{tLX7mge00yvh zZ3xwkdgGbA8)#Yn@z(I#w=?2w;M@L^B1|g35#O~P--a_~jpiNPy0<+LsBp}$FCLs+ zv1Sz$O`VJ+KB}qN%yusJh|bA2D?;XSr}p-{q;p=v%6#4#zie=Oo{%i$_m? z)7$_(J>FMm^h@d0~z7BJ#j!1-W_Bp}L~6 zFX5sbfH_#Di^K>jbkoSGN@_geZlQWUgj650`@vE^Oy|;{3Z(l=8opRKfShuDn>zE} zzcQ0tIR5;zj99~&t8K%d;GSZFYx%cej+3d*m8GFl_$eIoH@evi$lIu<`ut%%*P0;( zCJar*r4Vwt=gg8zTklOLT)fdjJ4C|tW_ZTpGb|>K^^JcD${nXMsqFHRmyT@MXS_dM zHQzact)zrl-mhq^nXKE{fKrJ?f;-l(D7kx7a^|BWYFaU;Ri2T{bai1Gnhv7pBcj!d z92v+0!~EbN-(L873nPTaIxjOIwAMOY7aNmqC*wC5#S5Y+8~>+&Hf8Q~+`Xp&(bnI6 z{Y$w~G;xhg=1+%NsYoFb9@gv592zkYQzzNbgLJ$rvkohu{p*bZzyN~90Ef11lb(@Z zX*Cy;jts39SkQU+UtNgsOAaA}`@EaKhV5`(CZm*|l|qU`F%o{qeWqeihR7iP+SKNU z{@h%}Wq8w(jzstWa$Tqx0<96M5^*PrILKu7gs@n(L>{F5k-Tm$9hXinr4;Z-IMXk$ zmbx6uJO{Cx(INNs0HaZ)eBqxX1Yb|ZpHA3P`O)X@>;&&@q|E=oDtd~@sljlBBQYok zCfUm>&&xgJ6F~x%Krp%bZ5`=Lqu`Q_WE_c5As@JyjXCkE>~M%i;3I4x?;-gfVth=@ zBZv$O*eA61T*(_T{hzc-B3L6?E#RWdQrL!~c*W8qlv8Ne0j9l@_#;LywDI>4V}E7v zcu^~O`Ha!9()Uv<4sxhodK4#VG2T)rs4 zb0+4WYoJ)9q(vo$c|Y>`sd>J@A%qDJZ;4D&#^o9&0A44OtqC=G^&er2b~JZU)#SJZ z6FD@dUpm_m%#s(qe}xla$ni-0jS=;bfgWZd%sMwrI_s63at6aWg;-FU-SHdxL<*NO zmjr6AO1_|#f04kWGfQU&L+U|_x2u=u#a6r}X7E>u9@3cu*+@>vPZB1MOlRxyPzaM= zmu)@Mg2rK5q?yXu< ze8+zuqMsQpMR1Bs%P&2L4kQW-7|sMzY7gnY1;yEY)&to0X2rVg-`XsK15cYsRvx$| z0qvP~pQqedUAXsRne35PDro{?r62k%cTEHHBOBz5U#w83V?mw`a(m6_0uG9Sh!1iK z;YfBoB%Hou5a*YU#QA^2Ve|G{FZjr@wd@6s7nl8QzVruGrv3jiuu_TO#~?&m$g^E8 zDJNqC*n6^BO|;wzo)Ks(2PZwPJfZ%c0hafXpEpw;<*M!Ie7F>^XJ<{BM)_f=X{ivt zwaB?2{$w;k+8l|>q%)g-5$WLQBInp9#nm?{oi2`tFCfam=!wg@CX{KF+%?F#H|t`%}uR1bxfb*HG{1~Liug(oE*OolqWaR0$7+X zr;YatlBH?K?*qecFS09z?66I@qj+*t2@sKZH5Puf`^jS+;N$TH1D@lrj>|rhY@r zzwB{o`j_1@Iqkg4JQ#tVRBFYRBk1y59jixffryFu+s-jg>2j!?Ql#dm<2d4vxuw_| z0H%Wy@KcQL&B|!bWt$A&cv@^T%Jc*7hCdpDF38w4(7}Vb5}wWcRrGkp1h^|4s&Kad zdn63IKfG#W@r56GlQ5n-M7DTz@po$_wHQU<<7-jfyiS=1Yju1rmkm`@7qmrl#oIQ+ zeCBQUd|^>}PO+i7Bl#_N%56Nw(3-?~GN3VPlMn{X=1+gRxSrh^LhxecI=D$9cID-Vwz(^h_%5)l0l=`shVP4~{y zs|r+0($V=i58~^H-A4>N$?*oqh`P1PUF5F6GQQT%J8R#LR~#3%6PC34W!KlyiT0g~ zmYi8N8^f0h8rD5K#91N)D@6&LM$^E*qjEqN)r!vf?fN+{@Icux6mP)(QbjV1C+Ub= zqCPZ?AsG%SFpv&%4?tXPTVhAMFj)YPks{(iT;TxP9R9GDp9Hu*xHmH|v5E=%8|#3A;J+BZFuw8TjiY+MgxV zNaxpJjrEZ;_m~vDjaWk=VV324r4^LIxoG-kSJ}N@0jI_H4WJWa9=>cdjyArb^udNU zxiVX_$Y^=fi6Vb@Ka4&(Mq{wyFnrgjog;VzqNaiJTi<@|UfQFhvQ2UJQvUV`Py*`F zJKj))vq)6Pl}PF&=+YA2Rp3(AzE$N44#xGo4moImxt1$T zW2U$_C#yL~)K2!av^bmAbd$;*wm5K=-^uY1&|9Jr<*g@Z&}=XK`QSCBWYo<3az`VO zvBK8>ut$6DRm3~Vs{6);kcB-7iuc#jIy+usEGqa1k7&ibWEFMhM|1f@XkkSimPkp= zn<$UY3(TE3ODEhofo>1`pG&Mm)o4r%0g{+VLzNgu$_31kI7cVg2t^hN0nGV7ZERyF zO)YSu1t(2nA{`$vOXD0}I!xk@5p`n%=Miusy(SefYhpYp7LgQV^`9@yMYG@EU(nEf za4c+`GV>K+BJ&#_M4%!vXtczB6I2i;uK(E`gp(@~nH~cWtqtj;qV}mkFR$E}*DWE# zumcN4QUC>&3y!v)$wFIL+~ksa6MsWtnd$1>sDUZ}Dz_kg4gpIg3ob071SWRu%-Dm< z_cbb=4|+OU+xxSy<-K#Cb?Q6&xDyF$GKCcy8426&K5dl?Uuj_6`hR|3Qw%-&6k$?Z2Jc3*rcm9iY%<<;Y|xS3dMYYP5X zcUMGBntL*v&H0=B?tD6%*}%$YIx)6Et%GVzDjEn#D4|nSfQglt%3{4($lIolz54n2 zJnpZD6j^}`8zK`YD`uV(bRW?iNrXc%0Xeh`g#xGVYYvE-nt_?Ai5#CBD%*q#5%>g#X82i znzeC}YENo@f_*fl=No6a8+A;%X`L#62XCUntUA`r*Zgu)c*y;v)ov}MGqQGSomX96 zac+6uG}L#F_;Dz3=CJl0NKYrGa-nk5qq+eUsC;Sm%2gEY@7Mf2jlpO6MtuV>Uv1`w zv`|&}yZP+pWRCgAQTJ>2q7zwjCyC6FfrI~{$!Q4`8(yrH-zsD>%fEgdoI02E3Ur%{ zJYe6xQF-D2-Z%^QmcDk-jBuI0b`y@Jt^QiDVA6r})S+E$5isF*>z-1ceZdxiZtnru zTOn~Uo}U6+p@v42>f%84a8Z6W;5U)Cxpd8pQPJ z6b|kOU#=%8#3uOk2<~&vO<%!xyzl9S!5}39hF*2G1IE!+{l)D3grnD~*dwH{CechO zi^H3^AyCpWww<{hXP?D*IZH_DTUrVVS~%)SC@7ejL-(dI*YWk-Qd2gGj#>b;Qs|Dg zAg|U!cfJSH-;~ncK8D$dKL@l_XWc4Qte@@)_3SNG7`oSQNjkb@7#ZUqZx^jZv9A?2 zDl2xzN)J0(Y(6niU9Px)N_lvtW_;S0@0md;t}1B%g5oi}1w0e@%A_m)J%XXGXFa$M zUPYh^v5FU-VmPN;OxYW*7=i+zAk=jokX4!mYgX-94_^^<#QT+Y243I`>Q$;GMKoV6 zSGY{W6Ik>dWQkh5a(S7&ADgxIN6gkcm*VZ~`bleBI&SB)bnDWtBCnCRE7;6E(p2Iw zvcHf|?W8qXUt$=)!*E{BRHbA0=y*m5n1KSTv*7X^!?66O-LvRXu9yO7#hqR%o}Pl4 z@M?_Qa)19668n9vT#Erd<7xT&Jg&!#L3kncR_Qia(#X;_j{B5y&^2`NX@%%kVO^NK z(dlLQi8VU#O;4nUP^jB2sZ9sPYX?r((`jsV@ex4u&2C_oz~D~Tg<2P~>8Di(9df*v zeLOL5D<7)@2T+rNQTQOHwsaa3-jEtbk; zhLK*{%x*{l4^@p z6Eu|%YVV`A`nQ1Lcc2>8RHJJ1JWfW?U}wtg{Aa9cXMUJp1G#SY)b_UxjiqA9Rz)YL zIcIf!?u($HIskxJ*5Bk!SmKM1)#m8T*#ks*Z3Mf-?FD^rvVA@{I$N)3Q1$EN5BVah zeyPkg4`~dG>Baz_SgHL4?i!pQpNWSpU3}P>(0dN9h<9_%?MwpFlS~(jI+{1|F6EAR z)phE$pK}@V`lHF4XFo-F3GD~=aqFquhPfM<90>jEN)9j?-GO)qDCZc`kZ7D4jkcj- zqNg3h=;QCb1Yz5~<5YKmKpIUY-pMc$u1;@2bfnV6&zHFkg~U7M zcV;;ZUgwhYG>qQGqu&wiDv4-WaJB7LU7X86O3v*li-yM{^3TjFWvLj?^+bKUlD}6`Xy-ety(MZ%x*P8PPFkZP1JUr1atlh!%mbmG^Mo@Z&2NMXoF zaVWDO*iu*&J}UgnI2J*!-v!C4sefMR6`Xxj%nRW0l6df2BJC5vfRsaH58RTtb1aly z0gvod^Su*Ovq?Qs5EwRI4UcG}2Slk6nS`r? zprf5j-VzGpbIXY#d=@V+5E1xfN*7~gO{1pMqFJ6g-jKM`M@ z^6G;DzuXpAHBe205IwmMg@L563x2;yasbHa4=)qW<$FlTbO)``Z?;NUAsz5H1X#>< zfW2x1u&Tq_=2MQ*=PKdGt9id`r!lEY<5Y-euvS)LuD^x&W8z>;akA^u<+bfmd`Y5Y z|0CZFysFCcbf2;7fdLqX;1sBh(R!J7J~_cukT*a5J-FipTuW3+IW%mxV(NxX62O&e z0ZXllrUH2+&}UXx43l3`^3ui)WD2a2*IRqJxrtZS=?S=SFMD%6;=NHO=a(iLxUGnV!oj%5Z&~CQMLKv*^gVv=6+dKNS zNm3jqUzy0FRt|cb2Yq)4PJ#BE6oCIo_<9@r6&CzH|M}A|xa}0!Ld?RM`PS?s$(;tY z?Vm|93~EW%F-{EhSU3G@0m`A#s3~I`2k&00-ceKI3^v|OldkPUx=}x-@)1+AC;B{S zzc1EK2?xk?LzOmD=4ME>d}2Y_gaXCK;SznHTPb=}uI97H#@)nwGOY241P~c@nwI4* z&%?Wji_@xc9+`DZDA#h&jL>A@vu-8HAwA`d(JK~DFCS<(E7Vdj6UJSYiD+=G|HHAu zJ!_R#=JRWZPPjGR{RxD6E8S}D<&}x=Dpyb~6w#iTpskEscdW}NjOu*1y94Z*vzS`z zBgOclbXcpR4)*x|yO{Q}1K8$&AG|+GBLzk2eHzF>DOUu8jnY)4J_?t@fAd9=UC>tH z+c+;g$*)+Dr%Qt$0rp@xdpBPCUhf8si$|m?T$6+=EIujMHV&oFfJL@9V0*YeXlpsU z>8B)I-t5$EA7H0o2kX-u1T$Vpe*^UNT%4U(%PvMY2p=v(Nn^b)0LCl{!HTsJzTr>c zmQ&h|-=u+!5=&|D`mS&5d>;ZJ+_^^h2oFD8HGY{5rWij1U#=>p+b`dIfj*4qhih70 z!#@GCCpMP90_lCqjmsqMQU&@IF`Tz%CioUs2{(KA*Ci~xo(=W)OIkbKINi-7RZ1flM7x z70{&nOAx9d%FE@qz^Eld)~8`~RA{h?;|H%>vTd6YUfxTgGewpFm#*(x>!_)jQs~>m zbB2kg}{PN&nD5E%;+9)aj69QIkyw$0tq@hn8f|v;>FzAQFynZn2{Dr6j$aZirb?qI; zEU;$lbI2Yy=>XtJn`_b1dY<9NJ?B|>w| zeQ?7ZKw0DIO>aMc{|5WQ(|rwPMD3&!IIVj&K7nz190Bd;Bc@E(L)qTkQ`q!)h>~zf z-!T4$@BnpJOUqFp;b{vbwl!eYhXUD;9$72{ifChO1b@0z4I@ISc8sKH9QapDJx(sC za!LrgLKOzxPt07otKU0r9HwN!R0~W!v2tDtFx{qZ&2|Pa(Wq`TVN{y38h-tzXt&k_R=#u0D16cr!YFw^Nuwf_XPjIS{Z3J&$1lc@piwEi zNUt&4#Mu7V+W(`SmijEny>=3zILL)Zg02iOQgyv zV9+wo+fm@o<5qLLw3}>HV<}k!-mebPY|{yL2tLoo{?&=yDkx#bq!Q(MA0|h?B)?gP z!>#TruKO+t;XWVf-l&kGv?%O!Z4f6!;?f`=IM?WS{Ma-2Nyw3`#}D8ng@lcS)a%NP zsKCXK$b=+CFQ2kPu<*ppsg{#TPJ|E&AefTs^L6Wj&FRsc)7F%6TP9T3x*M6eB7@b6 z%b$oma4h-fCG-atD{Sr!?u|q!r+X3}I(mF9Gz>iDMLeEbUHDX*fGWN--Bo+hV%|W= z3E1T^knxu4u0AwQxTR(&@-5l@N>WEUU8xFr&PEfe#W6r<99$H9XR9B;FG+(8D8Lp~ zA8?nm0|v>Qd%^ivDS+x>hhOb%xsXkKZsD4 zt-nL+{l|w!SPRo{klP3{LmuSTxIh-D%aTc+PtEQ~kiyc|*EWW2k_-=0+2NIOc`qzFtZIu+xT#D7BceQbqJ4(UhF{PHLkBEGg zkNrnkFI(&-Tx3Qo0GLnF@TDoRI*_WOC*oixB?`ne53in}sEa-Qz>C_(?9;ik+*0!o z!kht?5H&ZG1D{9g%0L*dj|EvkIcg9~m_SoP;iKrv+b*DI$4t~hXZNHByq)Gg0alaM z@Kq#nTvGylbW0PD|4O6D)$kaY4#c~9-1Mu~OsSI1*48Sa?{$ZjM`<^ZuVTt80 z>aSfk6K*6WH@krh!?gGhZgKmS=hvS4xV(s%nfzjJ3NQvH25=ZI%oFGM2>^*e)*<$x z%ni`9r#(Xyl(*Mbfwv|B%qi2QO(IwrG9V4i=~1NJrJwJfrRLb;!ky`lV99iogB~?+0P45OrRFx*cg+0}Qtk4PSNP zGV%&t5_PPkMhZy=b#tnDCQ{~z*2g`Dl+-^b^w^FIfe%&$O4c@2J391Yc6BZ7F&=h4 z;y&W?;;xq9y%aHhRpIsF;s55`(maOlHyyxsf9vM31902=LX0ta#Y$?^ssBce4#=`2P>)|jBGrD zTgy72hQw(>zOJzQd*n$sSRtevJe|ojgbMe4hJmeGn?ScMNchI&}BnH zf)}JkPfr~!jXh$Bs3~Yj1lYMr72+aB0&+FiI191vCk>bbK{w~|T1L{hS3xxwSA)`} zyCmU<(&Nwbxk)AfX^-MUoHhZ-MIu-yf$;t03vXdmYPp zJPU`$R>qD26}o)tSb`1oe^tmfv(U7Y=-0WU?D4mw3d#uM53aTmWd|ced>`t1w6!zo zo;{r94|q^&4CyD5^W2`x>S!RH>y(oRLz*SC3xz8UOwg%ds8}7VI!SxM?HObxtTplr zlCD0swL2R{2&%W=9j<*=vZr8cuXnOKoH2|(MB&d;WCwf` zQzuZNf8I_ebU=v=fjYrBh@t8@9CI}7_LP<%Fu=ggzjc_z7U&a@nY5LpTw?=>y}(A= z^UW9U5vNDEx0+fwc%r}R*Ig)=1+6&Nio1CmR_(~Sy~W%{!8&C(>GL{{Hy}XTSp~!r zH<}s&{Kx8S=y>&6+{2${ydEe$4Lg(!L`hJvQrj)zkS{<6H`ONg1Lt!lqDi}t$bE+w z*9*J`aaj&n{gBceVLFr`CmpC*`}8(IQ?5~tPK6WDW5>N3d`a^~AoKB{LbDU@TO8cIyXi+u* zWGnhPwdxO^;ZQ`f4Lq#zVS1tGRctZ|*^*ER2W4|-GxoAekMJs|oE$w;f@+&8ZPa6(I#`3A8TUgN>!szOqv(GC6h9#Q zT1LU7zKfv5M|l#Kc3lrK-SH8U;SE(8I*CEam@-12Rge-~-5a>J7Ty%+#v)RhGrczi zXEk3N3k&=8cnlFcG;47-UUC5*PJ&p})ohA@7t9pLrX8H!0X&;H?Q|IuaTfY8qzLf@ z8*CjS^zjEU8hn>y$Am19Rc1H9ALc89J|3Z_f13-(OX;E?9KwXm1@G0WnR`rycY+vvK^a)&*n%P?=9n1kCn*!?KtBm2pHqpZ~c9V>wn+#IsO z^0BeMJYHiL%=HX|4Y+)uv)<-b%?CbPWs5wNvzF=LL4lWHSI0`Ap)bkVoRr*{PH4_z%wU)=Ln!x-HMiXKukgjjwCJ?C2Uq?03z@(-V!H36B z0A@rJ0Ta#DGOX(NjEw*npB;n+w{w%o8p$HK8)}j7k;TchJ>{KfjrF>&=;&>3Cb%FQ zI`UtkN+?FN%!6}9R{$>E16vW=4eBrq33z?F(iNJKx`GHGMU{NWgr%_YJtgX5LH&DO zVo65l#=Er5zn#9u-+TA77tq*2SSMUDX&HCng;V6r`Ft(lTvB^GmA>tp$#K2Y9lp23 zm$iv=i&``*hD6Ku@!IWwS^|Y%%$8*v<@WE5Js?Pbbbq5G^qM-6Oo)EZ451lxEN+sK&j$y1_k#<|J5Tv#ee7oEu4AgiZpwjbbn`&g=%Y9 zhC0BPZ-i#6?5y;pM%Y$9yw?p8*4F)@}zVPC= z?VJ+e6vj$?%X+)nqC=`(!E{2c!S^Mkv}({`>m~QLA9wXCwbuRGAQ~)vs*K5M-S%Oy z0D)wv_b)U8zr|EAqfJBA`8}nmPHd@9l(U>urAfvzcpDthx2?uq0jWRksp4Y4=&X*S zw7fDSL6n!zl2r-s*+zx>`}6%`0IkObl_oTRg8l=Xfp|4^+~jTra@L{WOx>)w1-wfM zVLLZWg(GZ$a%Y0JhL}qh{dw;iqHd`|;U35Y;tzE}eZr?eHckZ@dx9uTbf|o?N(+fT z@W!u0A2>PV-J$@50USc9|sd9Zytz6zgzQ(yHJP{SJ zrl*ziPiE8ziPfA?KJ43<#^n&X0~pddt@?Hny{LV9sg^gZa9j<>?5Y}@*}Llw$UJY% zl)PV-4k3wz0KD+Q6tOK(Z%_6HKJg;S{3$bsYH2JejCUm0+ooU>sXjIeg*)~IOX1HN z-Xw$(wDpi34+UQ()vttm8Wyz0EyWffH$6#BRV0vQ#bidb98^_IwQsC4Q)%Y7Fel06 z)cfq!5*{RlFCM#%hjp;jyCWP)rO6M`{p_xrt11vMrd-fe=be_6f+z4ya3UZF-eK>V z+c3Zax(xhhi&q0vm>_Gf+vZ2sS^yFi$nSk{l8lmQHfNCWG$>Ac&%{*(?qp{q1))c# zb9>f`;UC;IWqm>eyC(EPp%@$$s{KSKc#{{Lu5o3V+l5*@sW~Ri^JJq z({m?U&y6caYK)xoLjI>$2=7jQ&|AJj^R-7cSFx|Xpx7n z9M@bEQe~b!Dy?dYlV}GB=dae)BS<4IlifP4n7m2cU%uf^X>GD)a4p2bV0?1Zt3YJ< z&Koym4brAPn+r2RHv^P$0V}@~Vzx2K)C|3FK=P@TCiE5j|LQSl^aFAjA8NPB`;JB@ ziLvm9;*I)U)^0tyW5EqNT>d-HH8uqx8IkX#e zkkarc9}(00StY#vvg4th<>-v-%YT1II%!8@t?_u7?1VUfq$LSoe}UW6d6ECmG@JW> zbKV@>oc|Z|Ci=gecXYCW{RR`-@a`jZSD4JTXvEAnAY0lx1)AP9*x&YeqNbo(qMQurC7zgM6*JTHEO$~;t0G`~k zAht@{flqU%1*2^?pjK|S=5%tnf#wrer>pAW`%jwl@@^!-bWPQcY!*VNAFJR%uGYu3 zGmalMXUX-X)tPz;ed~VZI{c?Au2bt<_0_A}JYbnsXGnm-*l+Q_fzd=qhs8Yo>DEu2 z`f!&3*QOp5ck>K|1?y%5&4$Xa&EXbUyrFpdE9FD(d;iHP0HZcW&mLjYN(XY0I#ctw z;c~O^)d5v5XLG*1P#C_802Z z_k6RSStIOa&J@x8Bm+ps`PNm~fR_-L^$Y$KfYKm*Kc~rFvIt zGnxz2omCMLKm@Ptf0BpR1Z0-Cq=M!d!7b%a@&^uu2s|MVOpNFWr7#t$d+3bZ3yl9i znWQ3!7m62%x6GAgw5N>FpSV9r|JNwN$%x~Fg-}qWhwf_j_(OHTTUSa-vA}L&c1&DK z=Ct7W!Mm|wU|>*wpnk~EpkPp7z`&sa;DLeBeTg8%m?8`)7hta8x=`&>M$7} zMfpe?3yF&qTXng>afjMRP{Kz3Li-}WE8SxZ5CjK6e^I~5?kV;gfB;~AP~KGT zQu}fPd%=GGlk5=E>*fw@`@}5pDh^a$E@C5RJ1^Gz{SMd8(cowMtFNDdsj}VAL;p=E z)McNi;+1zVY+^fC(#|+36l0^82>&Z18UA;IA^fd$NATEAsBPRGTlRgf#f{?q{){pv zlikdW0kx?dw{@cT`;7mWlgn!+aQ6hNM)JSRd*iOr zGcX7XbK;6g00a{=D=RZsqMj-K|Lgjj2E%a^F-llEIlB;XuyZHg(-DGjF(opaVF8>s zTTs4l3<6@uUBvdk)6QLL9;>_`?}jWlbXE`Z$t8>`<2uNaH@`l;F^UM9Om&)*&nHcKGjj2+$TiG&Ba9;cwj!A2FWB#M+$pl8We+n^|-IpM@*q{fR(CNlcaEVR8$WlFl| zAZ7l8n{Vh@cPvZ58#73krIgCx8v&s@Or&Z#=Y3VjS=ixd(OAP(qNfmF3Y(y(Y0nt1 zWtebpbk2d0=6KEvI4%QO7y;bFS&n<4=U`?mr}!2apoar2v}u?M_<7W|Nx-a+8=_Fd zU211TEVq0#L9?U6#NxiuUqHoq)`W2I5SIQhjfiDqU#AF&5IxB(&@S%sT4=WFBq z9^pGxblBMZ!dft%Tbscjl(-qC!tNl;Mu4#}!wr?*ny``&qb{H&a7uo$m+=I?tH&dl zd3|#gE~AF6>GB#5EAX;S;WzLI1U*NnehHa=SI^%WY_CyeQ#U_4rvy8L{k=bbE!KZ? zjec&ge`6kN-7)~8g@8l#TKQiRYpszLY|ilApcr~rH{j8ZB=;xyRkmkuBe(MMZ2llQ zxYIQfI-&+tmJBOD#He0wCNUED(U>y=tk=FXU{dwO4+1Q2$PvAPDC>+5T3*8BInpQx z)U_V6y`Ky3)uFnZ-Z>w}(-p@n^Ul}KbimVM6k}**_4UrJJ>b@N=o>ZGoA93U0omrQ z%ST7V<;C!cIGbH7`Cpjo$DYM8-Or81laE+xAOpM}O-GUo_M(|W>U;y6K?(*UB8OLb zV_Ack&E@HF!$n20qKh=Z{nDxN`LO4zcaHpW@`rUbYvEM3X6-SF;n^He`a}`m$muV# zQ`LlX&%~!d3BXR53b3@aGMArxr>LCtWS_9|+Qf9$H$UX_Rs9J)fpVuv6XTie!U#tM z`*+wRg8BqP_dtjt9uAQm*?RVvq;H5~tBtUjf<=g0y3ske)10lnLs1}asKaG+sYQG&p^kh+d_NLZhc`AjB?;zg^i|u{=7YXx>&|0GFs3O% zyXiJt2^EX5F8(wS$Ub>~C##O=`T-*JVrakfPM)TenU^(6A0tXT5QyJc$h;nM1O#1- zoY$UW0v>&2cCwqyU#Zd&7?^eG$yt>_>zydaOSFDu)w5<7U|L|39qT3gr6A5xO5sr_ zC|vl2+QrHQ6-e;;h61Rau3(;(RVe<6g=GVA%v|^=3o%f?R#KbD8{>7yaE1rY&Pmr@ z#3oAp{YQ*d#dzvG(o{6 zO6m)&N^23q?7DUx=yz45Sp4$A3knkEpOkq2%<`vr(+?;?L5$s%ZUfq2KvAf$QC2^7 z1)WBR*Ye+HTwqgY;Ta)iGtLHT#?H~i{t?P&OUcjUOB6~)OtJKUkDRVX!6WM0fuVRG z27r?+Jv#DNTVgzS=w34S$Ns)k=e+F`E8T4l`|#)uL*YjKd#F1z?B6BKg$hsMWnwrf z9bMamYeEJFiHATo?%!|-AelL(l;1F|f+t0SAl|SPHKAJWVBjbKUvYQ2b5SlU1jVPn z_$!{!1UxO##p9Ft-4a!+j_Jac*_Er72!M6#NV09V=e{&9d`7xfbYO&|ztJ|~8(1_Q z3X*fFq+5q=C1R&U$^XU1$KVx@Cr!Ze$;oJ959kVOD^%IYz!AQ z<3}w_PvRsNxq!6J5d?ErKQcJG;Mt(U<0dK5kER>ZpEVCU-KZ}mrSeTyDXAu44Vb9t z1|<85jgMEl3wH5-U5NX|tI6w6T_#pd>>?5*FEX!{oEMpQ90Qglx$w*0*;eX8`E?PkLF>hEG0M=l;OH#y?OGsP4PU@pX(4;St^8n@wyN{pnkPOR(Vjre zg?*vZ%AvB)@CtE@rZXWX0IHXt9=ezH?hy#&9U`C_Qk$1E@G`2-4xSJ_nuCo^3alSO zW@EobDr4pEeTAuNyoC?zv7@!S{JV7{7=jwyBIx+U_(8?UU>-x8AN{~M=XK$ZwS2^Q z?>KDWsr)tr&o{7HoKXPO0v87l(89n@!7td^3GRb|2^}z=Cq5KkHBZOQlCj z2rEydJaq$99FBtdyRdV!i;|vyvV;NF(e_s&xl%QlOg9MNZ-Zqf> z)1Q(^lBg21-9L&Wotl$ifnCIr162<0LeclZ80NK9L0ZX;%cc-^7V*5+)bm0Xyulo!#^68+!-KvXd*)E zB^RHXijSE||NDA3#Lut=94)@!4pK%U=8a0Ou`S<8gWMT`Eg~Ta%zb78EKLZumVNzG zYN6QsdvgwP;h*)+R$asHV|iBB*`2xnm_4;)z~bG?*w}0N2GF_Ezq55Cw6lHXoar+g zY=s>xWyI+5KOT+ijsClGK!V#6DrH5FwGox^mI{@(gO}~|dSlw0VGz5FRW%AEGuKMv z4xQ%)lY1r`OQ0FDfvH)G_r{U5K~IH#vO?9ZeV)2UeT0%Daz&W)&57Z<^){;%bG_L6 z_(m{6w{lGI3b^!SorYEIn`x=Aj9s31A<^s9Vrwo-=S*{5gg=X0$-U_p@foZybJaD= zJ0YSdKF$;G>od zN~EaH2s0fR>iofxpJce4fRx;M;cnr7dMFufe4g()1*Ce^csU>V#NJO(mg+yhweXX^ z7K}Q5J1f+BPi^LqdACQK9ezhx6F(Y4)FmX?mJaMhig(9{BTPA^d&UE%GAB{jEcE#q zC#~uhPEBz`f4D+uX(?d`wYqY3a7IwH>GjV>2SwB|3h)bUzsr=}PB zzX_>zL11hDch|_mk_hHN3ScGDBVtss^fDu2W?>~_)F9F!VkTnw&;Cm*+uOVRmu4bj zB2p$|l(sXs|1VqB=$ztpjuW^t z$HWYcNc-DR^#j5ic{*6{VSIoYg2%V}r;le}u?4s(E#CMA%UPwVSz~Z0stDpA&YP@Wq%Nn&)|d_^eb=xK6LwtW5Gydf^$j1trO5 z);H#RUwh`5TlqxiVVUrKFG7?NV)mH`_HCRbFgn{kQtVvxC{+O_`I8Bfs7GLFS;sZa zO^hMzrDi{E)B*VilfThb-hb~}!*CZKF_wITXcYG#j||h3#kEfD*pluTb^pjU7>_RO zJwJ4=COx74FF#ikrhFEm~ diff --git a/src/introduction/introduction.tex b/src/introduction/introduction.tex index e03feb1..0b12d99 100644 --- a/src/introduction/introduction.tex +++ b/src/introduction/introduction.tex @@ -24,19 +24,4 @@ \section{Project Goals} Additionally, for certain issues that can be automatically fixed, \texttt{parsley-garnish} will provide automated actions to resolve the issue. % TODO: via code transformations - put this in the background? The goal of \texttt{parsley-garnish} is to be used as a companion library to \texttt{parsley}, in order to improve its ease of adoption and to help users enforce best practices. -\TODO{Place this in the right bit (I think intro is good)} -As noted by \textcite{gibbons_dsls_2014}, a deep-embedded \textsc{dsl} consists of two components: -\begin{itemize} - \item A representation of the language's abstract syntax, in the form of the aforementioned datatype. - \item Some traversals over the datatype, which gives \emph{semantics} to that syntax. -\end{itemize} -A deep-embedded \textsc{dsl} and a linter for that \textsc{dsl} can share the same abstract syntax, but differ in the semantic interpretation of that syntax: -% TODO: I'm not really getting my point across... -\begin{itemize} - \item The \textsc{dsl} semantics are evaluation. In this case, \texttt{parsley} interprets its syntax to output a parser. - \item The linter's semantics are pretty-printing. In this case, \texttt{parsley-garnish} interprets the syntax to output a human-readable representation of the parser. -\end{itemize} -% semantics for parsley: evaluate parser -% semantics for parsley-garnish: pretty-print the parser - \end{document}