[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