Как отладить moonscript? - PullRequest
       12

Как отладить moonscript?

0 голосов
/ 12 октября 2018

Я пытаюсь написать какую-нибудь игру, основанную на фреймворке Love2d, скомпилированную из moonscript.Каждый раз, когда я делаю ошибку в своем коде, мое приложение выдает ошибку, и эта ошибка относится к скомпилированному lua-коду, но не к moonscript, поэтому я понятия не имею, где именно происходит эта ошибка.Скажите пожалуйста, какое решение в этой ситуации?Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Moonscript поддерживает отображение источника / перезапись ошибок, но поддерживается только при работе в интерпретаторе moon: https://moonscript.org/reference/command_line.html#error_rewriting

Я думаю, что он может быть включен в другой среде lua, но яне совсем уверен, что именно будет задействовано.

Это определенно потребует, чтобы moonscript держался за таблицы исходной карты, созданные во время компиляции, поэтому вы не можете использовать moonc;вместо этого используйте модуль moonscript для своевременной компиляции требуемых модулей:

main.lua

-- attempt to require moonscript,
-- for development
pcall(require, 'moonscript')

-- load the main file
require 'init'

init.moon

love.draw = ->
  print "test"

сэтот код и moonscript правильно установлены, вы можете просто запустить проект, используя love . как обычно.Вызов require 'moonscript' изменит require для компиляции модулей moonscript на лету.Снижение производительности незначительно, и после загрузки всех модулей разницы нет.

0 голосов
/ 14 октября 2018

Отладка является проблемой практически для любой системы компиляции исходного кода.Целевой язык не знает, что существует исходный язык, поэтому он может говорить только о вещах в терминах целевого языка.Чем больше расходятся язык цели и оригинал, тем сложнее будет отладка.

Это большая часть причины, по которой компиляторы C ++ больше не компилируются в C.

Единственное единственноереальный способ справиться с этим - хорошо узнать, как как компилятор Moonscript генерирует Lua из вашего кода Moonscript.Изучите Lua и внимательно прочитайте вывод Lua, сравнивая его с данным Moonscript.Это облегчит вам отображение данной ошибки Lua и исходного кода на фактический код Moonscript, который его создал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...