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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.