Path: utzoo!utgpu!water!watmath!clyde!cbosgd!ihnp4!inuxc!iuvax!pur-ee!uiucdcs!uiucdcsb!liberte
From: liberte@uiucdcsb.cs.uiuc.edu
Newsgroups: comp.lang.lisp
Subject: Re: lisp environments summary
Message-ID: <168700010@uiucdcsb>
Date: 16 Dec 87 20:36:00 GMT
References: <3121@tut.cis.ohio-state.edu>
Lines: 42
Nf-ID: #R:tut.cis.ohio-state.edu:3121:uiucdcsb:168700010:000:1587
Nf-From: uiucdcsb.cs.uiuc.edu!liberte    Dec 16 14:36:00 1987


> ...
> What I would like to have is a hybrid editor that maintains both the
> structure of what you're editing and the text, and works really hard to
> keep them in sync.
> ...
> -Peter Schachte
> pds@quintus.uucp
> ...!sun!quintus!pds

TADA!  (Thanks for the cue.)  We have a hybrid editor that maintains
both the structure of what you're editing and the text and almost never
gets out of sync.  It uses GNU Emacs as the front end and an
incremental parser (Leif) to maintain the parse tree.  As changes are
made to the text, they are sent (via a change to Emacs) to the parser
which keeps quiet until you ask for error status or request structure
information.  

You can be editing multiple buffers each with a different language
simultaneously.  The language specification bundles loaded by the
parser are generated from lex and yacc (actually bison) specifications
(contributions greatly appreciated).  There is no restriction on where
you put white space or comments as long as you can specify them in the
lex specification without start states or other context sensitivities
(finite lookahead is OK).

And it's free.  We are in beta testing now.  We are sending out tapes to
a few people so mail if you are interested.  Eventually we'll distribute
it more widely.  For now, it's called the SAGA GNU Emacs Leif editor,
or Leif for short.

We are also accepting research funds to continue this work.


Daniel LaLiberte   217-333-7937
University of Illinois, Urbana-Champaign
Department of Computer Science
1304 W Springfield
Urbana, IL  61801

liberte@a.cs.uiuc.edu
uiucdcs!liberte