From 1427a4d4eabfb26b8b4a5a9b34201b69b722b084 Mon Sep 17 00:00:00 2001 From: Rocco Jiang Date: Mon, 10 Jun 2024 21:36:33 +0100 Subject: [PATCH] Finish the bulk of pre-parser simplification --- src/body/impl/parser.pdf | Bin 54715 -> 49609 bytes src/body/impl/parser.tex | 57 ---------------------- src/body/leftrec.pdf | Bin 43250 -> 50907 bytes src/body/leftrec.tex | 101 +++++++++++++++++++++++++++++++++++---- 4 files changed, 92 insertions(+), 66 deletions(-) diff --git a/src/body/impl/parser.pdf b/src/body/impl/parser.pdf index 2354a2e457a25d59e34951ce45c035062380516e..1677aaf8a928e8b35158275e73e27f4405204052 100644 GIT binary patch delta 38956 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%0D@^=cV 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

T@mgQD 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 Db} 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. - -The top-level combinator that makes up \scala{expr}'s definition is the choice combinator, \scala{|}. -Scalameta represents this infix application of the \scala{|} operator as so: -\begin{minted}{scala} -Term.ApplyInfix( - lhs = Term.Apply(...), // AST node for (expr, string("a")).zipped(_ + _) - op = Term.Name("|"), - targClause = Type.ArgClause(List()), - argClause = Term.ArgClause( - List( - Term.Apply( - Term.Name("string"), - Term.ArgClause(List(Lit.String("b")), None) - ) - ), - None - ) -) -\end{minted} -% -This structure therefore guides the implementation of the pattern match in \scala{Choice.fromTerm}: -\begin{minted}{scala} -object Choice { - val matcher = SymbolMatcher.normalized("parsley.Parsley.`|`", "parsley.Parsley.`<|>`") - - def fromTerm(implicit doc: SemanticDocument): PartialFunction[Term, Choice] = { - case Term.ApplyInfix(p, matcher(_), _, Term.ArgClause(List(q), _)) => - Choice(p.toParser, q.toParser) - } -} -\end{minted} -% -The definition of this method is fairly self-explanatory: it matches on a \scala{ApplyInfix} term where the operator is the \scala{|} combinator, and recursively applies \scala{toParser} to its \textsc{lhs} and \textsc{rhs} nodes. -Finishing off, the \scala{expr} parser is therefore converted to the following \scala{Parser} instance: -% Choice( -% Zipped(Function(_ + _), List(NonTerminal(expr), Str(a))), -% Str(b) -% ) -\begin{minted}[escapeinside=\%\%]{scala} -Choice( - Zipped(%\textcolor{gray}{Function(\_ + \_)}%, List(NonTerminal(expr), Str(a))), - Str(b) -) -\end{minted} -The exact representation of the \scala{Function} is not important at this momenet -- this is covered in the next \namecref{sec:function-representation}. -For brevity, the remaining code snippets in this \namecref{sec:parser-representation} will simplify the function representations and continue to grey them out. - \subsection{Building New Parsers From Existing Parsers} Now that raw \textsc{ast} terms can be lifted to the higher-level parser representation, it is easy to build new parsers from existing parsers. This is crucial for left-recursion factoring, which ``unfolds'' parsers into separate parsers representing the left-recursive and non-left-recursive parts. diff --git a/src/body/leftrec.pdf b/src/body/leftrec.pdf index 73c38fd0510af0dfb0c9387dddc83cfab8bfe90d..601d9f91d986b193ab49c42dbfa3959e6ca92e7d 100644 GIT binary patch delta 38445 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 bXN>WaxlI}RLPsPD5rzm7u(2s=!U_HhM>|7x delta 30876 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") -def deconstruct(parser: Term)(implicit doc: SemanticDocument) = parser match { +def deconstruct(parser: Term) = parser match { case Term.ApplyInfix(p, ap(_), _, Term.ArgClause(List(q), _)) => (p, q) } \end{minted} @@ -56,7 +56,7 @@ \subsubsection{The Parser \textsc{adt}} case class NonTerminal(ref: Symbol) extends Parser -case class Pure(f: Function) extends Parser +case class Pure(x: Term) extends Parser case object Empty extends Parser case class Ap(p: Parser, q: Parser) extends Parser @@ -81,6 +81,21 @@ \subsubsection{The Parser \textsc{adt}} case p <|> q => (p, q) // using extractor object } \end{minted} +% +As an example, the \scala{example} parser is then represented as a \scala{Parser} object resembling the following (where quasiquote notation is used to keep the lambda expression term \scala{q"_ + _"} concise): +\begin{minted}{scala} +// (example, string("a")).zipped(_ + _) | string("b") +Choice( + Zipped( + q"_ + _", + List( + NonTerminal(Sym("path/to/package/ObjectName.example.")), + Str("a") + ) + ), + Str("b") +) +\end{minted} % Instead, represent parsers as an algebraic data type \textsc{adt} in the same way that Parsley itself uses a deep embedding to represent combinators as objects. % Methods on these objects can then be used to manipulate them, and the resulting object can still be pattern matched, maintaining the static inspectability of the parsers. @@ -88,13 +103,19 @@ \subsubsection{The Parser \textsc{adt}} % And similar to Parsley, representing everything as objects makes it easy to optimise using pattern matching on constructors. % 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 Scalameta Terms to the Intermediate Parser \textsc{ast}} +\subsection{Lifting to the Intermediate Parser \textsc{ast}} Converting the raw Scala \textsc{ast} to the intermediate \textsc{ast} therefore 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 Building a map to represent the high-level grammar: the unique symbol of each named parser is mapped to its corresponding \scala{Parser} object and a reference to its original node in the Scala \textsc{ast}. + \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. \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: +\begin{minted}{scala} +case class ParserDefn(name: Term.Name, parser: Parser, tpe: Type.Name, originalTree: Term) +\end{minted} \subsubsection{Identifying Named Parsers} Finding \textsc{ast} nodes corresponding to the definition sites of named parsers involves pattern matching on \scala{val}, \scala{var}, and \scala{def} definitions with a type inferred to be some \scala{Parsley[_]}. @@ -105,7 +126,7 @@ \subsubsection{Identifying Named Parsers} // ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // mods pats decltpe rhs -val tree = Defn.Val( +val exampleTree = Defn.Val( mods = List(Mod.Lazy()), pats = List(Pat.Var(Term.Name("example"))), decltpe = Some( @@ -128,7 +149,7 @@ \subsubsection{Identifying Named Parsers} println(s"type = $returnType") println(s"structure of type object = ${returnType.structure}") } -} +} // qualified symbol = path/to/package/ObjectName.example. // type = Parsley[String] // structure of type object = TypeRef( @@ -137,10 +158,72 @@ \subsubsection{Identifying Named Parsers} // List(TypeRef(NoType, Symbol("scala/Predef.String#"), List())) // ) \end{minted} -Having identified that the type of this \textsc{ast} node is \scala{Parsley[String]}, \texttt{parsley-garnish} can then proceed to convert the \scala{rhs} term into a \scala{Parser} \textsc{adt} object. +Seeing that the type of this \textsc{ast} node is \scala{Parsley[String]}, \texttt{parsley-garnish} can then proceed to convert the \scala{rhs} term into a \scala{Parser} \textsc{adt} object. The map entry uses the fully qualified symbol for \scala{example} as the key, and the lifted \scala{Parser} object as the value. -It also includes a reference to the original \scala{rhs} term so that any lint diagnostics or code rewrites can be applied to the correct location in the source file. % Thus, a full traversal through the source file builds a map of all named parsers, representing all non-terminals in the grammar defined within that file. +\subsubsection{Converting Scalameta Terms to the Parser \textsc{adt}} +Having identified the \textsc{ast} nodes which represent parsers, they need to be transformed into the appropriate \scala{Parser} representation. +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}. +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: +% 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. +\begin{minted}{scala} +// Type signatures in Parsley: +// p: Parsley[A => B], q: =>Parsley[A], p <*> q: Parsley[B] +case class Ap(p: Parser, q: Parser) extends Parser +object Ap { + val matcher = SymbolMatcher.normalized("parsley.Parsley.`<*>`") + + def fromTerm: PartialFunction[Term, Ap] = { + case Term.ApplyInfix(p, matcher(_), _, Term.ArgClause(List(q), _)) => + Ap(p.toParser, q.toParser) + } +} +\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: +\begin{minted}{scala} +// x: A, pure(x): Parsley[A] +case class Pure(x: Term) extends Parser +object Pure { + val matcher = SymbolMatcher.normalized("parsley.ParsleyImpl.pure") + + def fromTerm: PartialFunction[Term, Pure] = { + case Term.Apply(matcher(_), Term.ArgClause(List(expr), _)) => Pure(expr) + } +} +\end{minted} + +\subsubsection{Building the Grammar Map} +The overall process of converting the source file \textsc{ast} to a high-level map of the grammar can therefore be expressed as a single traversal over the \textsc{ast}: +\begin{minted}{scala} +object VariableDecl { + def unapply(tree: Tree): ParserDefn = tree match { + case Defn.Val(_, List(Pat.Var(varName)), _, body) if isParsleyType(varName) => + ParserDefn( + name = varName, + parser = body.toParser, + tpe = getParsleyType(varName), + originalTree = body + ) + // similar cases for Defn.Var and Defn.Def + } +} + +val nonTerminals: Map[Symbol, ParserDefn] = doc.tree.collect { + case VariableDecl(parserDef) => parserDefn.name.symbol -> parserDef +}.toMap +\end{minted} + +\subsection{Implementing the Left-Recursion Transformation} +\TODO{TODO} + \end{document}