ru:os2faq:os2prog:os2prog.011

[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