This is the mail archive of the
cgen@sources.redhat.com
mailing list for the CGEN project.
Re: Typo: .substr in pmacros.texi is .substring in pmacros.scm
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: cgen at sources dot redhat dot com
- Cc: hans-peter dot nilsson at axis dot com
- Date: Tue, 19 Mar 2002 15:59:51 +0100
- Subject: Re: Typo: .substr in pmacros.texi is .substring in pmacros.scm
> Date: Mon, 28 Jan 2002 14:05:29 -0500
> From: "Frank Ch. Eigler" <fche@redhat.com>
> On Mon, Jan 28, 2002 at 07:57:08PM +0100, Hans-Peter Nilsson wrote:
> > It would IMHO be very useful if .sym-built symbols were
> > .pmacro-expanded, as I initially thought. [...]
>
> I see this sort of recursive macro-expansion could be useful.
> Does someone have an argument against it?
I didn't see any argument against it, except for the comment in
the code. This works for my simple command-line examples
including the one in the comment but beware of the scheme/CGEN
newbie. (Is this an ok way to compose ChangeLog entries for
nested defines?)
Ok to commit?
2002-03-19 Hans-Peter Nilsson <hp@axis.com>
* pmacros.scm (-pmacro-expand,scan): If result is a symbol,
call scan-symbol on it.
Index: pmacros.scm
===================================================================
RCS file: /cvs/src/src/cgen/pmacros.scm,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 pmacros.scm
*** pmacros.scm 2000/07/28 04:11:52 1.1.1.1
--- pmacros.scm 2002/03/19 14:30:25
***************
*** 229,239 ****
((and (list? exp) (not (null? exp))) (scan-list exp))
; Not a symbol or expression, return unchanged.
(else exp))))
! ; ??? We use to re-examine `result' to see if it was another pmacro
! ; invocation. This allowed doing things like ((.sym a b c) arg1 arg2)
! ; where `abc' is a pmacro. Scheme doesn't work this way, so it was
! ; removed. It can be put back should it ever be warranted.
! result))
(if -pmacro-trace?
(begin
--- 229,239 ----
((and (list? exp) (not (null? exp))) (scan-list exp))
; Not a symbol or expression, return unchanged.
(else exp))))
! ; Re-examining `result' to see if it is another pmacro invocation
! ; allows doing things like ((.sym a b c) arg1 arg2)
! ; where `abc' is a pmacro. Scheme doesn't work this way, but then
! ; this is CGEN.
! (if (symbol? result) (scan-symbol result) result)))
(if -pmacro-trace?
(begin
brgds, H-P