[plt-scheme] Clean design of editor's Scheme parser, program nav. commands?

From: Robby Findler (robby at cs.uchicago.edu)
Date: Sun Aug 6 11:24:58 EDT 2006

There are probably two pieces you want to look at: text% the editor  
(it organizes snip% objects by lines, and snip% objects can be text,  
or images or other things you define), and Scott Owens' parser  
generator as connected to the editor in color:text<%>. The editor  
provides editing functionality (mapping graphical locations and line  
numbers to positions (offsets from the beginning of the editor) and  
lots of hooks for observing actions like insertions, deletions, etc  
etc, and other fancier stuff). Scott's parser generator provides a  
spec for a programming language that can be used to generate an  
online colorer (and other tool that process parsing-level information  
about a program). Roughly, you give a yacc-like spec, and you get out  
a mapping from positions to tokens (ie, given a position, it will  
tell you what token you're inside, including comments).

None of this comes from Emacs and, unlike (last i checked) Emacs, the  
coloring/paren matching cannot get confused.

If you have more specific questions as you try to build something,  
let us know. Hopefully the above is enough to get you started reading  
the manuals.


On Aug 5, 2006, at 8:58 PM, Derek Peschel wrote:

> I've looked at a few editors -- Climacs, Hemlock, jove, GNU Emacs,  
> Lispworks's
> editor -- and now I'm starting to try out PLT Scheme.  My goal is  
> to find a
> clean set of commands for navigating through LISP/Scheme programs,  
> or find
> an incremental buffer parser and a set of navigation functions that  
> I can
> build my own commands on.
> Were the PLT program-navigation commands copied from Emacs?  Are  
> the under-
> lying parsing and navigation functions all in color:text<%> and
> scheme:sexp-snip<%>?  Can the editor get the parse tree, navigate  
> through it,
> and find an ending text location?
> If anyone has done any work with PLT studying the completness of  
> the design,
> creating documentation for navigation commands that uses uniform terms
> to describe the object parsed ("the non-symbolic form before point"  
> or some-
> thing even more specific) and the ending cursor location ("before  
> the open
> parenthesis of the list"), or creating use cases, I'd love to hear  
> about it.
> -- Derek
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.