Comments 11
>> за индексацию массивов не брался
У Tsoding-а на одном из его бесчисленных стримов это было, где-то на ютубе лежит. Смотреть не смотрел, просто на глаза попадалось.
Интересно, по идее, конечно желательно оставить совместимость «сверху-вниз» по синтаксису, чтобы можно внешние библиотеки подключать для парсинга json, http и пр.
А индексы, конечно, приходиться терпеть. Если еще добавить {} то будет вообще кайф.
ну тут ради совместимости "сверху вниз" и сделано - весь существующий код и либы должны работать "как было". А что про {}
не очень понял?
Альтернатива для do/then end, очень раздражает терять по строке на каждый if в больших скриптах.
Разве они требуют отдельной строки? Вроде также, как и фигурные скобки работают.
А мне тайпхинтов не хватает...
занятно, на реддите о том же кто-то сказал. предложили после параметров функции двоеточие и какое-нибудь слово (на правах коммента) разрешить добавлять. в таком виде действительно нетрудно сделать.
вот как-то по-умному их парсить и проверять типы - это другой уровень сложности
а lsp разве не умеет подсвечивать?
Когда я экспериментировал с кастомным синтаксисом Lua, очень понравилось позаимствовать у Херба Суттера идею из cppfront (hsutter/cppfront: A personal experimental C++ Syntax 2 -> Syntax 1 compiler ): сделать шебанг в начале файлов, чтобы явно включать вторую версию синтаксиса в конкретном файле.
Этот подход может быть довольно удобен для реализации 0-индексированных массивов: файлы библиотек и старого кода интерпретируются обычным образом, в вызовах из новых делается +1 при обращении. Это также позволяет делать даже крупные изменения не сильно инвазивными, ведь патчи параллельны существующему коду, а не переписывают его.
В конце концов в голову пришла интересная грустная мысль, что в наше время LLM совместимость языка важнее элегантности синтаксиса, и это скоро сделает создание кастомных языков еще более нишевым и малополезным, тк всегда будет нужно много денег, чтобы понаписать примеров и дообучить модельки.
3 кусочка «сахара» к синтаксису языка Lua