C — Есть ли способ анализировать lua только с помощью библиотеки lua, не выполняя ее?

#c #parsing #lua

#c #синтаксический анализ #lua

Вопрос:

Вопрос говорит сам за себя. Допустим, я хочу создать редактор для lua с подсветкой синтаксиса и подсказками кода. Для этого мне нужно постоянно анализировать код и применять надлежащие правила. Как я могу сделать это с помощью библиотеки Lua?

Комментарии:

1. Я не думаю, что библиотека lua здесь поможет. Его основная цель — загрузить и выполнить код lua. Таким образом, он не предоставляет API для чего-то вроде извлечения AST.

2. запустите компилятор Lua?

3. Вам может быть интересно, следуя протоколу language server .

4. @Jarod42 Я посмотрю на это. Похоже, это то, что я ищу

Ответ №1:

См. lua_load

Загружает фрагмент Lua без его запуска. Если ошибок нет, lua_load помещает скомпилированный фрагмент в виде функции Lua поверх стека. В противном случае выдается сообщение об ошибке.

В качестве альтернативы:

Чтобы найти ошибки Lua, запустите свой код через компилятор Lua.

Чтобы найти что-нибудь еще, запустите код через линтер, такой как luacheck, или реализуйте свой собственный.

Проанализируйте выходные данные обоих, чтобы отобразить предупреждения и ошибки.