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