From: Bill Dubuque
Subject: Re: Parenthesized syntax challenge
Date: 
Message-ID: <WGD.95Oct20035316@martigny.ai.mit.edu>
  From: ······@netcom.com (Henry Baker)
  Date: Thu, 19 Oct 1995 17:25:13 GMT

  I believe that Macsyma uses cgol as its parser.  So presumably if you
  have CL Macsyma, you also have CL cgol.

Macsyma doesn't use cgol but does use a 'top-down operator
precedence parser', the same type of parser used in cgol.
Again, see the Dragon book for Pratt's paper. Its absolutely
trivial to implement one of the parsers in Lisp.

-Bill
From: Joe User
Subject: Re: Parenthesized syntax challenge
Date: 
Message-ID: <46anro$ugo@tar.beta.delphi.com>
···@zurich.ai.mit.edu (Bill Dubuque) wrote:
>Again, see the Dragon book for Pratt's paper. Its absolutely
>trivial to implement one of the parsers in Lisp.
>
>-Bill

Trivial to code, but don't forget that getting
the operator precedence values 'right' is
tricky stuff. 

Other pratt parsers can be found in the symbolic
algebra package for SCM, and in the siod 3.0
release that went out to comp.sources.unix a few
years back.

But three things make the original CGOL stand out:

1. the use of dynamic binding of precedence values.
   so that the operator bindings changed as you
   entered different contexts.
2. that it was written in CGOL itself, making it
   more difficult to port to new lisp implementations.
3. the helper-functions for defining new syntax were
   quite clever. maybe too clever.