CVS: sml-dist/src/lexgen/doc/ReleaseNotes release-notes.tex,NONE,1.1
Matthias Blume <[email protected]>
| Newsgroups | gmane.comp.lang.sml.smlnj.commits |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/smlnj/sml-dist/src/lexgen/doc/ReleaseNotes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30700/src/lexgen/doc/ReleaseNotes
Added Files:
release-notes.tex
Log Message:
ml-flex -> lexgen
--- NEW FILE: release-notes.tex ---
\documentclass[11pt]{article}
\usepackage[top=1.25in, bottom=1.25in, left=1.33in, right=1.33in]{geometry}
\usepackage{amsmath}
\usepackage[all]{xy}
\usepackage{graphicx}
\newcommand{\flex}{\texttt{lexgen}}
\title{\flex{} Release Notes}
\author{Aaron Turon\\
\texttt{adrassi-t4+EzPmVLfD2fBVCVOL8/[email protected]}}
\begin{document}
\maketitle
\flex{} is a scanner generator written in Standard ML. It replaces the older
ML-Lex tool. For information about its implementation, see the
\flex{} Implementation Notes. This document describes the features and usage of
\flex{}.
At the moment, \flex{} is meant to provide an almost drop-in replacement for
ML-Lex. As such, the basic feature set and specification format described in
the ML-Lex user guide is almost entirely applicable to \flex{}; here we describe
the points of departure. Note that in the future \flex{} will have its own
specification format which may be quite different. The new format will allow
for more substantial breaks from ML-Lex, including full unicode support. The
effort so far has been directed toward building up the basic ML-Lex-compatible
infrastructure.
The major differences between \flex{} and ML-Lex are the following:
\begin{itemize}
\item \flex{} uses regular expression derivatives~\cite{derivatives} to
construct
its automata and generates a control-flow-based lexer, rather than a
table-based lexer.
\item \texttt{REJECT()} and \texttt{yylineno} do not have substantial
performance cost.
\item There is no \texttt{yypos} off by 2 bug.
\item \texttt{\%full} is not presently supported (but will be soon).
\item \texttt{yylineno} is no longer a reference cell.
\item A new function, \texttt{makeLexer'}, allows the generated lexer to work
directly with a \texttt{TextIO.StreamIO.instream}. Doing so gives a modest
performance improvement.
\item Several new commandline options are available:
\begin{center}
\begin{tabular}{ll}
\tt --dot & output Graphviz .DOT files for visualizing the DFAs \\
\tt --dump & dump detailed DFA description for the whole lexer \\
\tt --report & give a short summary \\
& (list start states and number of DFA nodes
per start state) \\
\tt --match & interactive matching mode (for lexer testing)
\end{tabular}
\end{center}
\end{itemize}
\bibliographystyle{../moby-small-alpha}
\bibliography{../deriv.bib}
\end{document}
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642