А есть ли парсер всего на свете (или хотя бы всего мейнстримного)? Или хотя бы набор парсеров, выходные AST'ы которых совпадают (или максимально похожи).
Я хочу библиотеку-парсер, скажем, C#, Java и C++, для задачи, требующей несложного анализа получившегося синтаксического дерева. Вместо одной библиотеки покатили бы несколько таких, у которых AST'ы очень похожи (чтобы можно было малой кровью спрятать их под ещё один слой абстракции). За упоминание лиспа спасибо — пойду погуглю парсеры на нём.
Для Haskell нашлись библиотеки language-c, language-cil (пока что не готова), language-java и language-python. Парсер плюсов я, вобщем-то, и не надеялся найти, так что всё ок :) Олсо, я таки понял, что универсального парсера быть не может в принципе.
Читал условие лабы по glassbox testing и придумал, как автоматизировать бо́льшую часть шагов. Хотелось запилить прототип, да такой, чтобы в будущем можно было это дело применять не только к какому-то одному языку, а к нескольким разным. А потом я погуглил ещё чуть-чуть и оказалось, что в Microsoft Research уже пилят некий Pex, который как раз эту идею и реализует (даже с несколькими ништяками — до constraint solving я не додумался, у меня человекам приходилось бы самим придумывать тесткейсы).
я нихуя нипонял, поэтому:
lisp
pugixml
Я хочу библиотеку-парсер, скажем, C#, Java и C++, для задачи, требующей несложного анализа получившегося синтаксического дерева. Вместо одной библиотеки покатили бы несколько таких, у которых AST'ы очень похожи (чтобы можно было малой кровью спрятать их под ещё один слой абстракции).
За упоминание лиспа спасибо — пойду погуглю парсеры на нём.
Для Haskell нашлись библиотеки language-c, language-cil (пока что не готова), language-java и language-python. Парсер плюсов я, вобщем-то, и не надеялся найти, так что всё ок :)
Олсо, я таки понял, что универсального парсера быть не может в принципе.
И снова я нипонял что ты хочешь, лисп сам по себе AST парсер.
а, так тебе парсеры языков надо, в сях можно поюзать яки с бизонами, если нужно универсальное решение — заюзай лисповые дсли.
В первую очередь хотелось заюзать уже готовое, а не писать новое (это я к yacc/bison). Впрочем, вопрос уже решён, так что пофигу.
А что за задача-то была? Компилятор сей?
Читал условие лабы по glassbox testing и придумал, как автоматизировать бо́льшую часть шагов. Хотелось запилить прототип, да такой, чтобы в будущем можно было это дело применять не только к какому-то одному языку, а к нескольким разным.
А потом я погуглил ещё чуть-чуть и оказалось, что в Microsoft Research уже пилят некий Pex, который как раз эту идею и реализует (даже с несколькими ништяками — до constraint solving я не додумался, у меня человекам приходилось бы самим придумывать тесткейсы).
ага, ясно, интересные у вас лабы, в компиляторах есть всякое такое вроде (/analyze в msvc) но не настолько продвинутое ещё наверно.