From: juergen.walthergmd.de (Juergen Walther)
Subject: Re: Lisp Parsers
Organization: GMD FIT-KI
Date: Tue, 5 Jan 1993 13:06:20 GMT

In article <11586@uqcspe.cs.uq.oz.au>, berglas@cs.uq.oz.au (Anthony Berglas) writes:
> 
> I am trying to introduce Lisp to the UQ CS Dept, in which everybody
> knows that real men use C++.  I will put on a demo of Garnet etc. shortly
> but most important decisions are made on first impressions, and the
> first impressions are the (())()()s.  God said that f(a, b); is easier
> to read than (f a b), it requires less characters.
> 
> Seriously, (> (+ x 1) (* y 2)) is ugly, and it would be pretty easy
> to add a parser to Lisp that could be used instead of the normal Reader.
> (At least for demonstration purposes).  Such a parser would idealy be
> table driven and dynamically extendible -- new macro, new grammar rule.
> 
> If anyone has heard of such a thing I would be interested to know.
> 
> Thanks,
> 
> 
> --
> Anthony Berglas
> Rm 503, Computer Science, Uni of Qld
> Ph 07 365 2812, Australia.
> 
> 
Following  exerpts from the GLISP and MLISP manuals. I like Lisp syntax, so I did not use it, but it
sound's promising in your context.

Generalized Lisp
Users Manual
by
David Canfield Smith

Apple Computer
August 1990
Version 1.2

Generalized Lisp (or Glisp for short) is a coordinated set of high level syntaxes for Common Lisp.  It is 
generalized in the sense that the Lisp programmer has a variety of dialects available, not just Lisp notation.  
Initially Generalized Lisp consists of three dialects: Mlisp, Plisp and ordinary Lisp, 
together with an extensible framework for adding others.  Mlisp (Meta-Lisp) is an Algol-like syntax 
for people who dont like writing parentheses.  Plisp (Pattern Lisp) is a pattern matching rewrite-rule 
language.  Plisp is a compiler-compiler; its rules are optimized for writing language translators.  
Mlisp and Plisp are documented in separate user manuals.  
It is expected that the set of dialects will increase over time as users add new ones.  
All dialects may be freely intermixed in a file.The translators for all dialects are written in Plisp, 
as is the Glisp translator framework itself.  
Support routines for the translators are written in Mlisp and/or Lisp.  
All dialects are translated to Common Lisp and execute in the standard Common Lisp environment.

Mlisp
Users Manual
by
David Canfield Smith

Apple Computer
xxx 1990
Version 1.2

Introduction
What is Mlisp?
Mlisp (Meta-Lisp) is an alternative syntax for Common Lisp that reduces its reliance on parentheses.  
Mlisp is designed to make Lisp programs easier to read.  Mlisp programs are translated into Lisp and 
then compiled, executed or printed.  Therefore Mlisp has exactly the same capabilities as Common Lisp, 
no more and no fewer.  Nevertheless, experience has shown that many people can write larger and 
more complex programs in Mlisp than in Lisp, since they can better understand the code.
The Mlisp syntax is a derivative of Algol, with begin-end blocks, if-then-else conditionals, etc.  
The fundamental rule in Mlisp is that the mathematical notation
function(arg1, arg2, ..., argn)
is translated into the Lisp notation
(function arg1 arg2 ... argn)
For example,
print("abc", stream)
translates to
(print "abc" stream)
Any Lisp s-expression can be produced in this way, even special forms.  For example,
cond(=(a, b)(c), t(d))
translates to
(cond ((= a b) c) (t d))
Of course the former is hardly an improvement on the latter, so special syntax has been added for most special forms:
if b then c else d
The idea for Mlisp was first proposed by John McCarthy in his earliest Lisp report in 196?.