On Mon, Dec 12, 2005 at 12:30:47AM +0100, Leopold Toetsch wrote:
> On Dec 11, 2005, at 23:45, Joshua Isom wrote:
> >.IfDebug(1,
> >     print "var = "
> >     print var
> >)
> 
> As said, it was surprising me too. Anyway, I think typical use cases 
> are debugging and I prefer a solution that boils down to no code at all 
> for the non-debug case, like C's assert with -DNDEBUG.

Hm.  Pondering...

 * PIR is primarily a compiler target, not a human language.  (Pasm,
   in contrast, is an entirely non-human language.)  So convenience is
   not paramount.

 * On the other hand, conditional compilation is cheap & helpful, so
   why not?

 * Forbidding commas in the expanded code is not OK.  And requiring
   backwhacked commas isn't OK either: too ugly, too much work to add
   and remove conditionals around existing code.

So I guess we just need a robust multi-line quoting convention (to
pass multiple lines of code to macros).  (Musing while typing:) How
about using braces as balanced delimeters when an open brace is the
first character:

        .IfDebug(1, {
                multi,line
                stuff,with,commas
                and even {nested} braces
                goes
                here
        })

-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to