[nem-pl] Pattern matching wygenerowanych drzew
Michal Moskal
malekith at pld-linux.org
Sat Nov 22 11:23:19 CET 2003
On Sat, Nov 22, 2003 at 02:04:16AM +0100, Kamil Skalski wrote:
> Friday 21 of November 2003 21:00, Michal Moskal wrote:
> > On Fri, Nov 21, 2003 at 08:39:36PM +0100, Kamil Skalski wrote:
> > > > A teraz borykam sie z dziwacznym bledem translacji E_list:
> > > > za nic w swiecie kompilator nie chce przyjac [], wymaga zawsze Nil(),
> > > > mimo ze [] jest tłumaczone własnie na Nil()...
> > > > Pracuję nad tym :)
> > >
> > > Ja będziesz miał czas, to spróbuj odkomentować linie
> > > 255, a potem 253 w macros.n
> > >
> > > Rezultat jest bardzo dziwny i nie rozumiem dlaczego się wykrzacza.
> >
> > Jak odkomentujesz:
> >
> > def a = <[ Nemerle.Compiler.Parsetree.E_list ($(make_quoted_list
> > (quoted_expr, args))) ]>;
> >
> > To potem działa <[ [] ]> w ok-macro.n.
>
> Zrobić tak, żeby coś tam działało, to ja potrafię :)
A to nie jest tak, że używałeś złej wersji kompilatora? W tym się łatwo
pogubić.
> Zatrzymałem się na tym, żeby w make_quoted_list użyć <[ [] ]> i <[ $(f..) ::
> $(..) ]>, niestety coś się chrzani. Próbowałem zatem dojść co on dokładnie
> genruje z <[ [] ]> i znów co chwilę się wywalał. W końcu wpisałem w E_list na
> chama <[ Nil() ]>, który w miejscu generacji wygląda dobrze, ale jak go potem
> użyć, to znów jest źle. To pewnie jakiś błąd w tym jak ja to napisałem... np.
> zastanawiam się czy Nil() powienien być tłumaczony na
> E_call (E_ref ("Nil"), [] ) czy może E_call (E_ref ("Nil"), [Parm (Nil())])
To pierwsze chyba.
--
: Michal Moskal :: http://www.kernel.pl/~malekith : GCS {C,UL}++++$ a? !tv
: When in doubt, use brute force. -- Ken Thompson : {E-,w}-- {b++,e}>+++ h
More information about the devel-pl
mailing list