[nem-en] one more question about macro system.
Kamil Skalski
kamil.skalski at gmail.com
Sat Mar 10 11:32:05 CET 2007
Probably the simplest way to match this need is:
<[ def $label = { def $label = "test"; WriteLine ($label); $label } ]>
2007/3/10, Ivan A Eryshov <ivan.eryshov at gmail.com>:
> Macroses:
>
> <nemerle>
> [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", ":", true,
> 210, 211)]
>
> namespace Problem
> {
> macro @:(label) {
> <[ WriteLine($label); ]>
> }
>
> macro deflbl (label) syntax ("deflbl", label) {
> <[ def $label = "test"; ]>
> }
>
> macro deflbl2 (label) syntax ("deflbl2", label) {
> <[ def $label = "test2"; WriteLine($label + " is defined."); ]>
> }
> }
> </nemerle>
>
> Usage:
>
> <nemerle>
> using Problem;
>
> deflbl lbl1;
> :lbl1; // ok here
>
> deflbl2 lbl2;
> :lbl2; // error: unbound name `lbl2'
> </nemerle>
>
> I know why this problem occurs, but how I can avoid it?
>
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>
--
Kamil Skalski
http://nazgul.omega.pl
More information about the devel-en
mailing list