Arseniy
я верно понимаю, что это теория автоматов и где-то в этом направлении?
Egor
ну я бы не сказал, что это актуально сейчас
Egor
это зачатки
Egor
что сейчас - намного прогрессивнее
Egor
извини, за тавтологию, но как-то так
Arseniy
а именно?
Arseniy
какая-то новая мат. теория или что?
Egor
ну к примеру первых проход лексическим парсером - собираем лексемы (операнды), а затем уже их исполняем
Egor
да нет, вроде
Egor
выражение f("test");
Egor
f - 1 лексема
Egor
( - 2
Egor
" - 3
Egor
test - 4
Egor
и т.д.
Egor
ну это очень упрощенно
Arseniy
и типа древо получается
Egor
ну.. .как сказать, да, можно и так сказать
Egor
в общем, это круто...
Egor
если не вру, то в js что-то типа того
Egor
сначала первый парсер, затем уже все остальное
Egor
как алгоритм выше, но сложнее
hlomzik
Понимать хотя бы — очень желательно
ага, спасибо, буду лежать по выходным в этом направлении
Дима
Я в универе написал интерпретатор delphi на delphi
Дима
Задавайте свои ответы 🌚
hlomzik
Дима, что с ником?
Oleg
Надо было на нем интерпретатор delphi написать
Oleg
А в целом конечно было бы весело написать свой язык, правда вот смысла в этом конечно нет
Дима
Угу)
Дима
🌚
hlomzik
один вон написал, а мы годами потом в чатах выясняем, зачем
hlomzik
я знал, на что шел)
Дима
А в целом конечно было бы весело написать свой язык, правда вот смысла в этом конечно нет
У меня на гитхабе есть язык для однострочников на рамде) Естественно, на рамде
Дима
Но так как в такую форму записи сложно прокидывать переменные пришлось от этой идеи отказаться 😒
Arseniy
https://github.com/zerobias/speak-r ← он?
Дима
Ага. Я не помню, по моему я туда не пушил финальный вариант
Oleg
А в чем сложность?
Oleg
И аяяй - закоменченный код в репе 😄
Дима
Не вижу ничего плохого) там есть вещи и пострашнее
Дима
А в чем сложность?
В том, что люди используют замыкания
Дима
А с интерпретатором-однострочником ты их использовать не можешь
Oleg
Евалит
Oleg
😄
Oleg
*евалить
Oleg
Но это конечно последний из вариантов
Дима
Не, не
Дима
Принципиальная проблема, евалом не обойдешься
Дима
ща вспомню как оно работает, покажу
Дима
Короче какая идея была — ты пишешь функцию на этом язке в виде строки прямо в js, и на месте её эвалишь этим модулем
Дима
Получается типа интероперабельная функция
Дима
Дима
Причём, чтоб было проще, даже с хэлперами
Дима
Oleg
Интересная концепция
Дима
Синтаксис — всё, что до :: — это названия аргументов, все слова после — функции ramda, в кавычках — строки, с @ — аргументы
Дима
При этом, лишние скобки не нужны, потому что модуль в состоянии понять, что если ты пишешь add 42, то это означает R.add( 42 )
Дима
Эдж кейсы так же все разобраны, скобки в языке тоже есть и так далее
Дима
Эдж кейсы разобраны, кроме одного. В однострочники блин хочется прокидывать объекты напрямую, вставить их в середину строки к какому нибудь append например. А сюда ты можешь вставить только строку, или же пробрасывать всё через аргументы
Дима
И это реально FUUUUUU
Дима
Это настолько неудобно, что я решил, что такой модуль никому нафиг не нужен)
Дима
¯\_(ツ)_/¯
Oleg
Так это
Oleg
Как в SQL
Oleg
$1 - аргумент первый
Oleg
$2 - второй
Oleg
И тп
Oleg
Не то чтоы это прям полностью решение боли, но уже
Дима
Не, аргументы у меня тут есть, причём даже получше) Им и имена можно дать, на скрине вон видны три именованныых аргумента
Дима
То есть это я уже тоже реализовал)
Дима
А душа требовала замыканий!
Oleg
Есть кейс
Oleg
Ты хочешь в середину же вставить?
Дима
Ага
Дима
Объект