=?us-ascii:iso-8859-2:utf-8?Q?=5Bnem-p?=
=?us-ascii:iso-8859-2:utf-8?Q?l=5D_Re=3A_=3D=3Fus-ascii=3Aiso-8859-2=3Aut?=
=?us-ascii:iso-8859-2:utf-8?B?Zi04P1E/PTVCbmVtLXA/PSA9P3VzLWFzY2lpOmlz?=
=?us-ascii:iso-8859-2:utf-8?B?by04ODU5LTI6dXRmLTg/UT9sPTVEX0RhbGVqX29f?=
=?us-ascii:iso-8859-2:utf-8?B?c2s9QjNhZG5pX3JvenN6ZXJ6ZT1GMT89?=
Lukasz Kaiser
kaiser at tenet.pl
Mon Nov 3 20:38:56 CET 2003
Hej.
> IMHO nie jest potrzebna ¿adna równoleg³a gramatyka. Wystarczy zrobiæ co¶
> takiego:
>
> expr :=
> ....
> <[ expr ]>
> $( expr )
>
> pattern :=
> ...
> <[ expr ]>
>
> Plus ewentualne <[ ID : expr ]> etc.
>
> W parsedtree.n dopisujemy:
>
> | E_quote { ex : Expr; } (* <[ ... ]> *)
> | E_unquote { ex : Expr; } (* $( ... ) *)
>
> oraz:
>
> | P_quoted_expr { ex : Expr; }.
Hmm, twoje HO wyglada bardzo sensownie :).
> Teraz zauwa¿amy, ¿e jednyny fragment kodu, który chodzi po wyra¿eniach
> (wiêc i patternach) jest w tyexpr.n. Wiêc tam po prostu:
Zauwazamy to troche za duzo powiedziane: ty zauwazasz bo ja bym nigdy tego
nie zauwazyl. Ale to bardzo milo ze nam to zauwazyles :).
O ile sie nie myle, to w duzym stopniu rozwiazuje to problem typowania,
bo nie trzeba przeksztalcac nowego typu do starego PT, tylko to sie robi
przy typowaniu.
> ty_expr (ctx, e) =
> ...
> | E_unqute => error
> | E_quote (e) => ty_expr (ctx, quote_expr (e))
>
> quote_expr (e):
> | E_ref (x) =>
> E_call (E_ref ("E_ref"), List.cons (E_literal (L_string (x))))
> | E_if_then_else (e1, e2, e3) =>
> E_call (E_ref ("E_if_then_else"), List.cons (quote_expr (e1), quote_expr (e2), quote_expr (e3)))
> | ...
> | E_unquote (e) => e
> | E_quote => error
Fajne. Hmm, a moze by tak zaczac od zrobienia tylko rozszerzen dla "expr",
z tego co piszesz to powinno byc wykonalne w bardzo krotkim czasie.
> Fajnie by to by³o napisaæ jako rozszerzenie :-) Tylko trzeba to najpierw
> napisaæ, ¿eby móc pisaæ rozszerzenia.
Moment, co jako rozszerzenie ? Samo quote_expr, czy ty_expr tez ?
Bo ty_expr to ja nie wiem jak, on w koncu typuje.
> Aha, podobna funkcja by³aby dla patternów, klas, typów i czego tam
> jeszcze.
Moze najpierw zrobic ja dla samych expr i sprobowac czy dziala i co z
tego mozna dostac, a potem popsuc reszte ?
> Mówiê z sensem?
Chyba tak, ale ja przestaje byc pewny czy rozumiem. No ale jesli to moze
za chwile zadzialac to wtedy pewnosc wroci ;).
- lk
More information about the devel-pl
mailing list