Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
TTCN3 syntax and HTML syntax should work now, but they have not been fully tested.
Make Climacs use Drei. There are known problems (apart from the docs now being outdated): * Some syntaxes have not been updated. * Group functionality has been disabled. * It's a large change and Climacs has no test suite. Bugs probably still remain. But it should work nicely most of the time. Otherwise, you'll get a full refund.
Removed the Basic syntax and the `cache' slot in the `climacs-pane' class. Fundamental syntax is now the default. This also required moving some things around, but there has not been any functionality changes.
Major motion and editing functions and commands refactoring (see the thread "paredit.lisp, regularization of motion commands, and more" on climacs-devel for full details). Breakage not found during testing, but still expected.
Changed mark-visibility to region visibility. Turn it on and off with Visible Region, for now.
Factored out cursor display from syntaxes to a display-cursor method on basic-syntax. Also added a display-mark method, a mark-visible-p slot on climacs-pane, and a command com-toggle-visible-mark to turn display of the mark on and off - useful for developing marking commands.
OK, no-one complained too much, so I'm going ahead with the syntax file-type changes discussed in <email@example.com>: DEFINE-SYNTAX's syntax is changed incompatibly.
Prediction is now done at the beginning of advance-parse, which means the next token is available to the predictor. Added a :predict-test to the add-rule macro making it possible to control when prediction is reasonable. Added :predict-test to a few rules of HTML syntax to speed up the parser.
Modified html lexer to return end-tag-start when it sees `</', and start-tag-start when it sees `<' followed by something other than slash. Slash is no longer a specific lexeme, just a delimiter like the others.
Defined BR and HR elements and modified some html files accordingly.
Improvements to HTML syntax: * defined a macro for creating nonempty lists * the UL element now contains a nonempty list of LI elements * the LI element can contain ordinary text as is allowed by the spec * the </LI> closing tag is now optional as is allowed by the spec Several things still do not conform to the spec, in particular optional tags for some elements. Modified climacs.html to take advantage of these improvements.
Added <ul>...</ul> and <li>...</li> elements. Modified some html files to be conform.
Added <p>..</p> element to html-syntax Fixed climacs.html to conform to the HTML 4.0 standard.
headings h1 -- h6 added
Introduced the concept of inline element and block-level element. Reorganized the attributes into core attributes, i18n attributes and scripting events according to the HTML standard.
Defined a "string" syntactic entity where the contents are shown in italics. Defined an HREF attribute that takes a string as an argument Fixed the <a> tag to take a list of attributes, just like <html> now does. The only possible attribute for the <a> tag at the moment is HREF.
<html> tag now accepts LANG and DIR attributes.
Factored out the rules for `html' and `head' so that they now use add-rule.
Added setf methods for offset of parse-trees. Either a numerical offset can be given, in which case, the start-mark must exist (since we don't know the buffer), or else a mark can be given, in which case it is cloned. Removed references to start-mark from html-syntax.lisp, and removed it from the export list of the climacs-syntax package.
The HTML syntax module is far from being complete, but it is now almost entirely cleaned up so that it can be used as a model for other syntax modules, in particular the Common Lisp syntax module.
Cleanups and code factoring in HTML syntax. Fixed a bug in update-syntax.
The start-mark and size of parse trees are now automatically updated in syntax.lisp, so there is no need for individual syntax modules to be concerned with updating them. Started restructuring the grammar in html-syntax so that for some grammatical entity, grammar rules, display function, class definition, etc are grouped together. This will probably be the preferable way of structuring most grammars for other syntax modules as well.
The incremental lexer is now in the climacs-syntax package in the syntax.lisp file.
factored out the incremental lexer from html-syntax. The code is still physically in the file html-syntax.lisp, but that will change soon.
Line-oriented persistent buffer (binseq2). Warning: Need to fix minor bugs (related to number-of-lines-in-region, I believe). base.lisp: Added faster methods on previous-line, next-line, buffer-number-of-lines-in-region. pane.lisp, cl-syntax.lisp, html-syntax.lisp, text-syntax.lisp: Replaced some calls to make-instance to calls to clone-mark and (setf offset), in order to avoid passing climacs-buffer to marks. This also made possible to get rid of delegating methods on syntax. climacs.asd: Added Persistent/binseq2. packages.lisp: Added binseq2-related symbols. Persistent/binseq.lisp, Persistent/obinseq.lisp: Cleanup. Persistent/persistent-buffer.lisp: Added code for binseq2-buffer and related marks. Also some minor fixes.
A step on the way to factoring out the incremental lexer.
recognize the <a> and </a> tags
HTML syntax now does syntax highlighting. The current code is a mess, because I haven't figured out how much of html-syntax.lisp can be factored out and put in syntax.lisp for use with other syntax modules. Also, the HTML syntax module is nowhere near complete. It exists merely as an illustration of what can be done with incremental parsing. It is definitely premature to try to turn it into something more complete and truly useful for editing HTML.
More progress on html-syntax, which may eventually become a model for many different language syntax modules. The display function now traverses the parse tree up as long as a valid parse tree exists. The rest of the display is done from the token sequence. It is likely that all of this can be abstracted out and put into syntax.lisp so that html-syntax would just become a client among others for this traversal. Not only is the cursor still not displayed, whitespace is not handled during the traversal of the parse tree. This will likely be fixed in the next few day.
First attempt at a display function (for html syntax) that uses the output of an incremental lexer and parser. This code is not complete yet: * right now, it uses only the lexer output, and not the parser * the cursor is not displayed yet * it is too slow, most likely because the output records are all in one big bag, as opposed to being tree structured, such as the lines of basic syntax. The slowness is not a serious problem, because one day, McCLIM will have tree-structured output records itself, and because most syntax modules (including this one, very soon) will have some tree structure itself. It might be worthwhile to display the part of the buffer beyond a parse error in some artificially structured way, such as by lines as in the current basic syntax.
Split off the climacs-html-syntax package from the climacs-syntax package. Exported some more symbols from the climacs-syntax package. Implemented a few more functions in the climacs-syntax package that can be used to travarse the parse stack. The redisplay-pane function now calls a generic function redisplay-pane-with-syntax that also takes a syntax object as argument.
Intoduced a function `map-over-parse-trees' that syntax modules can use to traverse the parse tree. This function traverses but one of the paths through the parser data structure. In general, there can be an exponential number of such paths, but we assume anyone will do as far as buffer syntax is concerned.
Improvements to HTML syntax. This syntax module now uses an incremental lexer, and and incremental parser based on the existing Earley parser in syntax.lisp. Removed backward-to-error and forward-to-error, since I am not sure that these are what we want.
Implemented the new buffer-modification protocol with both update-syntax and update-syntax-for-display.
Improvements to HTML syntax.
Implemented an embryonic html-syntax module that uses the incremental Earley parser. Implemented a command (backward-to-error) to illustrate how the module can be used. I am not happy with my syntax yet, though. It reports too many errors.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|