Вступление в бодрый дух; Ци или х3?

Я делал переводчика для небольшого личного проекта с другом; мы начали реализовывать все классы и общую структуру, в которую будет транслироваться код, который затем будет выполняться только для того, чтобы отложить фактический код синтаксического анализа в эти структуры.

Теперь мы должны построить парсер, и после некоторого поиска я нашел сообщения и людей повсюду, говорящих о духе Ци и духе Х3, как если бы они были (я думаю, что они есть) 2 разными способами сделать парсер, но никто говоря разницу, какая из них более свежая, с которой мне следует начать.

Целью было бы, учитывая строку кода, вывести возможные ошибки и, если все учитывает грамматику и логику, преобразовать код в дерево классов, которые мы уже создали. Мы хотели бы проверить непротиворечивость во время синтаксического анализа, например, "вы используете переменную, которая не была объявлена".

Я не уверен, как две библиотеки угрожают по-разному

1 ответ

Решение

X3 более новый, все еще экспериментальный и требует C++14.

Ци это

  • более стабильный
  • проще поддерживать больше состояний
  • поддерживает ленивые парсеры (которые могут вам понравиться)
  • гораздо медленнее компилировать

Документы

Другие вопросы по тегам