2010-11-29 4 views

Antwort

1

"Nein". [edit: zum Zeitpunkt der Frage] Wenn die Frage über das Lexing/Pars Perl ist, ist es ziemlich schwer. Wir (siehe meine Biographie für "wir") haben einen Perl5-Lexer. Wir haben wirklich gute Lexer-Generator-Tools (Unicode, Multi-State, Regexps komplett mit "nicht Regexp" eingebaut). Der Perl-Lexer war eine königliche Kopfschmerzen zu bauen; Wir haben so etwas wie 50 lexikalische Modi (jeder mit seinen eigenen Token-Definitionen), um den lexing Teil zu behandeln.

Wir starren auf den Parsing-Teil und heute sind wir glücklich und haben keine direkte Notwendigkeit, es zu tun, also haben wir das bisher vermieden. Offensichtlich ist die Sprache mehrdeutig, abhängig von den dynamischen Definitionen verschiedener Identifikatoren. Daher ist es nicht statisch entscheidbar, wie eine Phrase zu einem bestimmten Zeitpunkt interpretiert (analysiert) wird. Wir denken, dass wir es mit einem GLR-Parser machen können, der Mehrdeutigkeiten handhabt und einfach die Mehrdeutigkeiten als mögliche Laufzeitalternativen festhält. Ich werde dich in einigen Monaten wissen lassen.

+0

Diese Antwort bezieht sich auf Perl 5. Die Frage bezog sich auf Perl 6. Die Antwort für letzteres ist ein klares JA. Um zu sehen, wie tief das geht, schauen Sie sich diesen Blogbeitrag an, in dem die verbiegende P6-Syntax so weit diskutiert wird, dass [Sie könnten SQL innerhalb von P6 in HTML innerhalb von P6 einbetten] (http://strangelyconsistent.org/blog/macros-define-your- eigener-Literal-Tag). – raiph

+0

@raiph: Ja, Sie haben Recht. Zu der Zeit, als dies geschrieben wurde, schien Perl6 viel nebulöser zu sein, so dass die Antwort aus einer Perspektive "außerhalb von Perl6" geschrieben wurde. Ich schlage vor, dass Sie Ihren Kommentar als Antwort hinzufügen. [Dies beweist, dass Antworten auf SO nicht dauerhaft sind; sie werden abgestanden]. –

Verwandte Themen