

Making Macros in CoffeeScript - unignorant
http://blog.lab49.com/archives/5111

======
boucher
Pretty cool. We've been using macros in the Cappuccino source code for years,
but we were too lazy to write our own macro processor so we just use the GCC
preprocessor. Relying on GCC being available turns out to work pretty well.

~~~
__rkaup__
Didn't know the GCC preprocessor was language agnostic. Never thought about it
really.

~~~
saurik
You actually can/will run into problems if the language you are pre-processing
with CPP tokenizes differently than C.

------
rimantas
Swap was not the best choice to be used as example, imho. CoffeScript has
deconstructing assignments so to swap two variables you just do [x, y] = [y,
x].

------
danking00
I saw parsec-coffee-script a while back and really wanted to help, but I was
quite busy. I'd love to see hygenic macros in coffee-script... Unfortunately,
it looks like parsec hasn't been committed to since February. Anyone know what
the status of that project is?

------
yason
Isn't this just lexical macros?

I expected a HN headline to refer at least to a novel Lisp style AST macro
implementation; there's m4 and cpp for basic textual macro expansion and those
are _very_ old news.

~~~
davidpadbury
It's actually working on the CoffeeScript AST. Admittedly the example I used
doesn't demonstrate this particularly well.

