Update of /project/climacs/cvsroot/papers/ilc2005/syntax In directory common-lisp.net:/tmp/cvs-serv29989
Modified Files: climacssyntax.tex Log Message: Minor fixes.
Included a paragraph on CL syntax.
Date: Tue May 24 13:43:08 2005 Author: rstrandh
Index: papers/ilc2005/syntax/climacssyntax.tex diff -u papers/ilc2005/syntax/climacssyntax.tex:1.26 papers/ilc2005/syntax/climacssyntax.tex:1.27 --- papers/ilc2005/syntax/climacssyntax.tex:1.26 Tue May 24 11:20:19 2005 +++ papers/ilc2005/syntax/climacssyntax.tex Tue May 24 13:43:08 2005 @@ -188,10 +188,10 @@ combines the previous two implementations, by using a tree whose leaf nodes contain the optimized trees representing lines; the benefit of this implementation are faster ($O(\log~N)$) operations dealing with -lines and columns. All the three implementations enable simple and +lines and columns. All three implementations enable simple and inexpensive undo/redo operations because older buffer versions are kept as a whole in memory. The space cost of these implementations is -not negligible, however, significant portions of older buffer versions +not negligible. However, significant portions of older buffer versions are simply shared with newer buffer versions. Also, it is not necessary separately to remember editing operations in undo records, in order to preserve precise buffer history. Besides the undo @@ -238,14 +238,16 @@ character must be examined to determine the number of octets which are stored to represent that character.
-The Flexichain library uses an unspecialized vector for its storage, -which uses one machine word per element, either as an immediate value -or as a pointer to a larger element. Climacs buffers can contain any -object, so in a suitably complex syntax and buffer protocol -implementation any buffer object might correspond to an arbitrary -number of bytes in the file. For instance, it is concievable that a -buffer implementation might compress sections of the buffer which are -not in use. +The Flexichain library was designed to be able to take advantage of +specialized lisp vectors for compact storage, though this possibility +is not used by the Climacs buffer implementation. Instead Climacs +uses an unspecialized vector for its storage, which uses one machine +word per element, either as an immediate value or as a pointer to a +larger element. Climacs buffers can contain any object, so in a +suitably complex syntax and buffer protocol implementation any buffer +object might correspond to an arbitrary number of bytes in the +file. For instance, it is concievable that a buffer implementation +might compress sections of the buffer which are not in use.
\section{Syntax Protocol} \label{sec:syntax} @@ -291,7 +293,7 @@ Climacs includes a parser that uses the Earley \cite{earley} parsing algorithm. There are many advantages of this algorithm in the context of text editing. Perhaps most importantly, it does not require any -preprocessing of the grammar, which makes it necessary for the entire +preprocessing of the grammar, which would make it necessary for the entire grammar to be known ahead of time. This means that the user can load Lisp files containing additional syntax rules to complete the existing ones without having to apply any costly grammar analysis. @@ -396,6 +398,13 @@ macro defines basic display functions for the syntax objects produced by the parser, with language keywords appearing in a separate color.
+Much like the other per-window syntax modules, the one for Common Lisp +uses high-level macros, some of which come with the Earley parser +framework in order to build a highly modular grammar for parsing all +of the Common Lisp language. This syntax module was built by a group +of undergraduate students at the University of Bordeaux, and is +currently being tested and improved. + \subsection{Per-Buffer Syntax: a tablature editor} \label{sec:tabeditor}
@@ -547,7 +556,7 @@ some serious limitations and performance problems of the McCLIM library. Nevertheless, we maintain that using CLIM and McCLIM was the best choice, and in fact advantageous to other McCLIM users as well, -as the deficiencies in McCLIM implementation are being addressed and +as the deficiencies in the McCLIM implementation are being addressed and other improvements made for use with Climacs.
Due to its reliance on fairly well-defined protocols, the Climacs text