This is the mail archive of the cgen@sources.redhat.com mailing list for the CGEN project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]