Parsers
Подборка ссылок Lexer and Parser Generators Парсеры и парсер-генераторы Dick Grune and Ceriel J.H. Jacobs "Parsing Techniques - A Practical Guide" ftp://ftp.cs.vu.nl/pub/dick/PTAPG_1st_Edition/FrontPage.pdf ftp://ftp.cs.vu.nl/pub/dick/PTAPG_1st_Edition/BookBody.pdf AnaGram
EBNF syntax, LALR(1) parser generator. Лучший, наверное, из бесплатных генераторов. Разработчик программы Jerome T. Holland умер в 2003 г. и ее поддержка прекращена (сайт сохраняется вдовой). Из документации - только то, что доступно на сайте + встроенный Help. Печатный мануал высылался тем, кто оплатил $500 при покупке. Примеры парсеров, сделанных с использованием AnaGram можно найти здесь: Tiny Basic Interpreter и C Compiler Признаться, AnaGram - это не обычный коммерческий продукт. Это - любимая игрушка. AnaGram сам написан с использованием AnaGram и в нем есть все, что может потребоваться профессионалу, включая визуальную отладку, контекстный хелп, подборку примеров и тщательно сконструированную библиотеку классов. Разработчик вложил в программу душу (или продал ее дьяволу - ради такого фантастического результата) и, полагаю, вдова Джерома Холланда поступила наилучшим возможным образом, чтобы сохранить и преумножить память о муже. Coco/R EBNF syntax, LL(1) recursive descent parser generator. Академическая игрушка. Да и чего ждать от людей, пишущих на паскале. IMHO, все идеи заимствованы из AnaGram. Зато есть книга по его использованию: Pat Terry "Compilers and Compiler Generators. An introduction with C++" http://www.scifac.ru.ac.za/compilers/pdfvers.zip Если вы умеете делать что-то серьезное в LL(1) грамматике, то может быть интересен, как крохотный парсер в исходниках, подходящий для встраивания в собственный код. Flex Fast lexical analyzer generator. Аналог платного LEX. Написан на С и, якобы, переносим. Исходный код ужасен Я как-то собрался было переписать его под MSVC/MFC, но не закончив, плюнул - ну, не стоит овчинка выделки. На sourceforge/flex почему-то лежит старая (2.5.35) версия, которая НЕ компилируется (в сборке недостает файлов), но зато в другом месте можно найти рабочий бинарник и исходные тексты 2.5.4a-1. GOLD Parsing System BNF, LALR(1) parser generator. Не пользовался, но описание выглядит достаточно интересным. Заявлена поддержка большого числа языков и Юникода.

© Gazlan 2009 * gazlan@yandex.ru

Hit Counter