Dear Mailing-list member,
Nearly three weeks have gone by since the previous progress report. The main reason for that is that I have had some computer trouble (my main development computer was pirated, and I decided to reinstall a newer OS), and some other difficulties that I won't bore you with. The net result is that there has not been as much progress on Climacs from me as I had hoped. Nevertheless, Christophe Rhodes and Aleksandar Bakic have been making great progress in my absence.
Perhaps the most exciting thing that happened is that Christophe Rhodes write a syntax module for Prolog. This work, together with the oddities of Prolog syntax, has exposed some limitations to the current parsing framework (based on a modified Earley parsing algorithm), but generally confirmed that writing a syntax module using this framework is not exceptionally hard. There is still some code factoring needed, especially with respect to parse-stack-driven redisplay. And I still don't know how to write a general-purpose protocol for exploiting the parse stack in interesting ways other than for redisplay.
Here is a list of what happened since the previous report:
* Improved the parsing framework by abstracting out certain features from html-syntax.lisp to syntax.lisp in order to make them more generally useful. Also did some code factoring.
* Implementation of the undo protocol for the persistent buffer implementation. (thanks to Aleksandar Bakic)
* Made several improvements to HTML-mode. Now, the add-rule macro is used so as to regroup all aspects of an HTML construct instead of having the grammar rule close to the code for creating the grammar. Introduced a macro `add-html-rule' inspired by the work of Christophe Rhodes on the Prolog syntax. Added grammar rules for recognizing string and the DIR and LANG attributes. Improved the code for recognizing the HREF attribute.
* Fixed a file-order problem in climacs.asd (thanks to Aleksandar Bakic)
* Syntax module for the Prolog programming language (see above). (thanks to Christophe Rhodes)
* Fixed a redisplay bug reported by Christophe Rhodes.
climacs-announce@common-lisp.net