[Q]: Порекомендуйте генеpатоp паpсеpов и лексических анализатоpов
[A]: Sergey Shikov (2:5020/157.108)
Кто еще не видел Visual Parse++, рекомендую! Это нечто вроде LEX & YACC, генератор лексического и синтаксического анализа языка в одном флаконе, но гораздо удобнее. Имеется диалоговый отладчик грамматик. Поддерживает языки C, C++, REXX! (можно написать вполне рабочий интерпретатор целиком на REXX). То что я нашел на /204 - это демо версия, умеет грамматики до 32 продукций. Компилятор с Паскаля на этом не напишешь, но на арифметические выражения хватает с запасом.
Главное в том, что его результаты гораздо удобоваримее монолитной C-программы после YACC.
[A]: Dmitry Kohmanyuk (2:463/32)
PCCTS - Purdue Compiler Construction Tool Set. Я его использовал под Unix-ом, но точно знаю, что есть OS/2 port.
URL: ftp://marvin.ecn.purdue.edu/pub/pccts/ (там должны быть и сорсы, и собранная двоичка для DOS и OS/2)
достоинства:
в отличие от YACC, это LR(k), а не LALR(1). То есть можно делать грамматики невообразимой глубины - парсер сам будет просматривать на столько вперед, насколько нужно.
можно задавать семантические предикаты - то бишь правила _внутри_ грамматики (типа assertions: definition = type-name { is_typename($1) } var-name* ;, синтаксис условный) }
в комплекте идет и генератор парсеров, и генератор лексеров. лексеры делает очень правильные (в смысле быстрые).
mailing list: pccts@ecn.purdue.edu