Próbuję nauczyć się używać Parsec
do pisania parsera Delphi, ale utknąłem w definiowaniu LanguageDef. W przypadku Delphi istnieją dwa typy bloków komentarzy: (* comments *)
i { comments }
. Ale typy commentStart & commentEnd z LanguageDef są ciągami, a nie [String], więc mogłem umieścić tylko jeden lub drugi.Jak zdefiniować wiele typów bloków komentarzy w Parserze
Tak więc, próbowałem stworzyć własny parser WhiteSpace, ale nie jestem pewien czy mógłbym go przekazać pod makeTokenParser
.
Każda pomoc zostanie doceniona.
Dzięki
John i Chris pomogły mi zrozumieć i ominąć ten problem, ale rozwiązanie polega na zastąpieniu ogromną liczbę parserami że makeTokenParser
dostarcza, więc nie jest to dokładnie to pożądane.
Będę pisać ponownie, gdybym mógł znaleźć lepsze rozwiązanie.
wiem, że to nie jest odpowiedź na to pytanie, ale Mike Lischke wykonane otwartą parser źródło Delphi i lexer, znany jako [DCC] (http://www.soft-gems.net/index.php?option=com_content&task=view&id=25&Itemid=33). –