Статус: Офлайн
Реєстрація: 26.08.2007
Повідом.: 402
Реєстрація: 26.08.2007
Повідом.: 402
Парсер С++ на С++
Всем привет.
ТЗ примерно такое.
Нужен кросспратформенный (на С++) интерпретатор С++-подобного (можно Java-подобного) языка с промежуточной компиляцией в байт-код.
В данном случае меня интересует именно компилятор языка в байт-код. Синтаксис требуется не полный, точно без шаблонов, но с наследованием и полиморфизмом.
Соответственно, нужен парсер грамматик.
Варианты, которые я уже рассмотрел:
1. Squirell - не совсем то что надо, либа достаточно сложная изнутри, может уйти много времени на обработку напильником до того синтаксиса, который мне нужен. Но пока что лучший вариант.
2. Boost::Spirit - заточен под контекстно-свободные грамматики, а С++ и Java имеют контекстно-зависимые. Придется отказаться от кучи вкусностей С++ и частично ограничить синтаксис. Второй по привлекательности вариант.
3. QScript - завязан на Qt, а кроссплатформенность в данном случае подразумевает iOS и Android. Да и язык JS-подобный - это мен не устравивает.
4. Lua - опять же JS, который меня не устраивает.
PS: Как вариант - можно парсер "Obj.Pascal -> байт-код", но врядли найдется таковой.
Исполнитель байт-кода пока не трогаем. )))
Теперь собственно вопросы.
1. Есть ли у кого-то опыт написания скриптовых анализаторов?
2. Если да - посоветуйте какие-нить еще свободные OpenSource решения или хотя бы толковые статьи/пособия по разработке оных (интересует не теория, с грамматиками я чуток знаком и литературы навалом).
Заранее спасибо.
Всем привет.
ТЗ примерно такое.
Нужен кросспратформенный (на С++) интерпретатор С++-подобного (можно Java-подобного) языка с промежуточной компиляцией в байт-код.
В данном случае меня интересует именно компилятор языка в байт-код. Синтаксис требуется не полный, точно без шаблонов, но с наследованием и полиморфизмом.
Соответственно, нужен парсер грамматик.
Варианты, которые я уже рассмотрел:
1. Squirell - не совсем то что надо, либа достаточно сложная изнутри, может уйти много времени на обработку напильником до того синтаксиса, который мне нужен. Но пока что лучший вариант.
2. Boost::Spirit - заточен под контекстно-свободные грамматики, а С++ и Java имеют контекстно-зависимые. Придется отказаться от кучи вкусностей С++ и частично ограничить синтаксис. Второй по привлекательности вариант.
3. QScript - завязан на Qt, а кроссплатформенность в данном случае подразумевает iOS и Android. Да и язык JS-подобный - это мен не устравивает.
4. Lua - опять же JS, который меня не устраивает.
PS: Как вариант - можно парсер "Obj.Pascal -> байт-код", но врядли найдется таковой.
Исполнитель байт-кода пока не трогаем. )))
Теперь собственно вопросы.
1. Есть ли у кого-то опыт написания скриптовых анализаторов?
2. Если да - посоветуйте какие-нить еще свободные OpenSource решения или хотя бы толковые статьи/пособия по разработке оных (интересует не теория, с грамматиками я чуток знаком и литературы навалом).
Заранее спасибо.