A yard is exactly $36$ inch and an inch is exactly the length
of $3$ barleycorns}.
\item Definitons:
- \begin{lstlisting}
+ \begin{CleanCode}
:: Error = PositionalError Int Int String | Error String
:: Parser a b = Parser ([a] -> (Either Error b, [a]))
- \end{lstlisting}
+ \end{CleanCode}
\pause
\item Matches longest left-most parser
\pause
\begin{frame}[fragile]
\frametitle{\textsc{YARD} Combinators}
- \begin{lstlisting}
+ \begin{CleanCode}
instance Functor (Parser a)
instance Applicative (Parser a)
instance Monad (Parser a)
item :: a -> Parser a a | Eq a
list :: [a] -> Parser a [a] | Eq a
eof :: Parser a Void
- \end{lstlisting}
+ \end{CleanCode}
\end{frame}
\section{Design choices}
\framesubtitle{Parsing}
Read from stdin, write to stdout\\
Added some handy primitives
- \begin{lstlisting}
+ \begin{CleanCode}
parseBlock :: Parser Token [Stmt]
parseOpR :: (Parser Token Op2) (Parser Token Expr) -> Parser Token Expr
trans1 :: TokenValue a -> Parser Token a
peekPos :: Parser Token Pos
- \end{lstlisting}
+ \end{CleanCode}
\end{frame}
\begin{frame}[fragile]