Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Coffee++ (Рождение легенды) (https://javascript.ru/forum/offtopic/59326-coffee-rozhdenie-legendy.html)

Mаxmaxmаximus 06.11.2015 22:42

Цитата:

Сообщение от kobezzza
Демки UnrealEngine у мя в хроме даже не открываются от тормозов, а лисе летаю

kobezzza, у меня все норм https://kripken.github.io/ammo.js/ex.../new/ammo.html

Mаxmaxmаximus 07.11.2015 02:08

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


Mаxmaxmаximus 07.11.2015 14:58

Пасоны хотите серию видеоуроков запишу как я трсналятор своего языка в С++ пишу)?


https://vk.com/video299655110_171761...138fc8ce5eda25

loljs 07.11.2015 16:38

Mаxmaxmаximus,
Посмотрел твое видео, и, сказать по-честному, вообще не понял, о чем ты там говоришь, и чего хочешь. Ты можешь в покороче как-то это сформулировать?

Mаxmaxmаximus 08.11.2015 00:32

loljs, я разжевываю там все по полочкам и видео не для новичков я для тех кто давно программирует.
Это не урок где я обясняю зачем трай катч, это переурок где я для опытных обьясняю почему они не верно понимают суть этой конструкци. если ты не понял значит ты не опытный просто. ну че я могу сказать) это не урок по трай катч

loljs 08.11.2015 00:38

Цитата:

Сообщение от Mаxmaxmаximus
я не знаю каким надо обладать разумом чтобы не понять о чем я говорю

Может быть я новичек, но Вы ведь там в начале видео и говорите, что видео для (не совсем) новичков. Не надо разжевывать. Вы просто скажите, о чем это воообще? Вы там говорите, что ошибки должны быть типизированны, например. При этом, непонятно, зачем это надо? Что вы подразумеваете под типизацией в данном случае? Try выполняется в рантайме. То есть, понятно, что речь не о статических типах идет. А если так, то в динамических языках рантайм-типы эквивалентны классам. Что Вам мешает тогда ловить такие динамические типы? Ведь throw может бросить все что угодно.

loljs 08.11.2015 00:41

Цитата:

Сообщение от Mаxmaxmаximus
не верно понимают

Как опытный может не понимать суть этой конструкции? Это же элементарная конструкция.

Mаxmaxmаximus 08.11.2015 00:46

loljs, ну есть 2 канала отдачи от функции, канал верного решения, и канал ошибок. а опытные часто по ошибки и верные результаты и ошибки отправляют по каналу ретурн, а чтобы пользователь функции отличал что есть что, ошибку как бы обозначюают заведомо невозможными данными, напрмиер если индекс найден то возвраазется число, а если нет, то это ошибка и надо бросить исключение, но фуункция отправляет по тому же ВЕРНМОУ каналу число -1 (а индексы не могут быть -1) и это как бы сигнал для пользователя функции что функция не отработала.


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

loljs 08.11.2015 00:59

Цитата:

Сообщение от Mаxmaxmаximus
ну есть 2 канала отдачи от функции, канал верного решения, и канал ошибок

Ну, начнем с того, что канал отдачи от функции это ретурн, throw к функциям отношения не имеет. Он бросит ошибку вообще мимо стека, либо до первого catch, либо на самый верх.
Цитата:

Сообщение от Mаxmaxmаximus
а опытные часто по ошибки и верные результаты и ошибки отправляют по каналу ретурн, а чтобы пользователь функции отличал что есть что, ошибку как бы обозначюают заведомо невозможными данными, напрмиер если индекс найден то возвраазется число, а если нет, то это ошибка и надо бросить исключение, но фуункция отправляет по тому же ВЕРНМОУ каналу число -1 (а индексы не могут быть -1) и это как бы сигнал для пользователя функции что функция не отработала.

Ну и что? Пользователю не обязательно валить программу, если в массиве не нашлось нужного включения. Это вполне годный паттерн, зависит от задачи, как и любой другой имеет границы применимости.

Собственно, по Вашей логике получается, что try вообще не нужен.

loljs 08.11.2015 01:10

Mаxmaxmаximus,
Как вы с таким подходом выполните
if(array.indexOf("foo") > -1) return array.indexOf("foo")

?

Mаxmaxmаximus 08.11.2015 01:29

нужно разбить функцию на подфункции. нужно подумать что делает функция, но я так и не онял что делает твоя функция. Что она делает вощвращает инекс? но ведь для этого уже есть indexOf

приведи пример нормальный и ятебе сделаю рефакторинг как надо "по хорошему" писать

Mаxmaxmаximus 08.11.2015 01:33

Давай лучше пример напишу другой

function getByIndex(array, index){
    unless(index in array) then throw RangeError 'Ошибка чтения с массива'
    return array[index]
}



а дальше используем

item = getByIndex(array, 100)



и вот тут мы думаем, если наша программа предуусматривет что этовполне нормальное поведение что там МОЖЕТ И НЕ БЫТЬ ЭЛЕМЕНТА С ТАКИМ ИНДЕКСОМ, то мы перехватываем это исключение и поступаем так как система должна поступить в таком случае, если же предполагаем что элемнет с таким индексом там ДОЛЖЕН И ОБЯЗАН БЫТЬ, то мы не пишем try catch, а позвозяем ошибке если она появится всплыть и остановить всю программу.

например

try item = getByIndex(array, 100)
catch RangeError:error then item = defaultItem
бла бла бла



вот тут предполагается что мы ловим ТОЛЬКО RangeError который может бросить сгенерировать эта функция, и если там внутри у неё сгенерируются ошибки другого типа, например ошибки работы с памятью "MemoryError" то мы не должны их отлавливать потому что не знаем как они отработают.

Mаxmaxmаximus 08.11.2015 01:37

Цитата:

Сообщение от loljs
Это просто пример фейловости твоего подхода

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

Цитата:

Сообщение от loljs
метод indexOf не должен был возвращать -1, а должен был свалить программу.

да он должен был свалить программу. фейловостью было бы НЕ свалить программу в данном случае. а свалить программу это ПРАВИЛЬНОЕ поведение и НЕ фейловость. примеры фейловости моего подхода будут или ты звездун?

Mаxmaxmаximus 08.11.2015 01:39

Цитата:

Сообщение от loljs
Соответственно, проверка существования вхождения "foo" в массив вообще невозможна.

ты такой неопытный просто поражаюсь, я теперь не удивляюсь почему ты не понял моего видео)

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

loljs 08.11.2015 01:42

Mаxmaxmаximus,
То есть, ты хочешь чтобы любая функция возвращала ошибку в случае фейла, а дефолтные данные возвращать вообще никогда не надо, правильно я понял?

Mаxmaxmаximus 08.11.2015 01:43

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



function has(array, element){
    try array.indexOf(element)
    catch then return false
    return true
}

Mаxmaxmаximus 08.11.2015 01:44

Цитата:

Сообщение от loljs
а дефолтные данные возвращать вообще никогда не надо, правильно я понял?

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



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

п.с. так же у тебя распространенная ошибка новичков, ты не делаешь декомпозицию, а должен, в этом и суть програмирования - грамотно разбить задачу на четкие мелкие подзадачи. каждая функцяия должны делать ЧЕТКО то что написано веё названии, и ни каких обработок деволтных значений ничего такого прочего, надо будет, код использующий функцию поймает исключение и сам "дефолтное" значение поставит в блоке catch (и это я щас на твоем языке говорю не верном, нет там ни каких дефолтных значений просто ты так это называешь и я чтобы тебе понятно было так выражаюсь)

loljs 08.11.2015 01:52

Цитата:

Сообщение от Mаxmaxmаximus
для этого надо создать отдельную функцию:

Я все еще надеюсь, что то что ты говоришь это не шизофренический бред. Зачем тебе try там понадобился? Чтобы все тормозило? Для этого достаточно
function has(array, element){
    return array.indexOf(element) > -1? true : false
}

или даже

function has(array, element){
    return (array.indexOf(element) > -1) || false
}

Но даже это не нужно, ты и так можешь возвращаемое значение к булеву привести? Что ты городишь вообще? Ты с программированием знаком хотя бы поверхностно? Какие нахер компиляторы ты собрался писать с такими мозгами?

Mаxmaxmаximus 08.11.2015 01:59

loljs, я гений а ты просто мыслишь приметивно и узко, разговор окончен. такие гении как я придумывают языки, а такие хомячи как вы учите их как зомби, даже не понимая идеологии и сути конструкций. разговор окончен тля. у тебя слишком нзкий урвоень и больше я на тебя время тратить не собираюсь. я великий человек а ты бездарь. если говорить коротко то ты настолько тупой что думаешь что Я тупой а не ты)

Цитата:

Сообщение от loljs
с такими мозгами?

с таким феноминальным и ясным мышлением как у меня я поменяю мир) а ты тупорылое быдло сниешь во времени. такова судьба) то есть я как гений галилео! человек вне системы вне матрицы! а ты раб матрицы и вас толпы стадо! вы даже ОСОЗНАТЬ не можете всего моего величества) из за своей тупости.

более того я даже не просто зазнавался и кичелся а посвятил тебя в часть своих грандиозных мыслей, но ты настолько неопытный что даже не понял того что я написал, вот он, разрыв между мной генией и тобой новичков))

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

Mаxmaxmаximus 08.11.2015 02:02

Цитата:

Сообщение от loljs
Зачем тебе try там понадобился? Чтобы все тормозило?

Как связаны трай и тормоза? никак. а ты думаешь что как то связаны. ты не прав потому что ты тупое быдло которому внушили что яваскрипт отключает оптимизацию в трай блоках и твой приметивный мозг на этом заканчивает процесс размышления))) ты ж дальше не думаешь, ты БЫДЛО которео мысшит ШАБЛОНАМИ которые закачали в твой приметивный мозг. Не пиши больше мне, мне общение с тобой не приятно, и ты своими ТУПОСТЯМИ нубскими засираешь мой интересный тред для продвинутых людей.


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


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

вы тупой сброд, рабы системы, быдло, батарейки матрицы) а мы 5% населения земли, интеллектуальная илита, твой приметивный муравьиный ум даже не в состоянии осознать что такое декомпозиция и что код который приводишь ты - убог и написать его может только неопытный новичек))) который не понимает СУТИ программирования и СУТИ операторов и языка.


Если говорить совсем уж коротко, чтобы ТЫ быдло поняло, то мой ответ прозвучит так:

Ты тупорылый новичек который кроме яваскрипта ни че не знает, и проэцирует его на все реальные и гипотетические языки. Ты мыслишь узко и в рамках того что УЖЕ ЗНАЕШЬ и не можешь придумывать нового) впрочем я уже говорил чо ты стадо и быдло и раб систему, представитель 95% населения земли)

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

loljs 08.11.2015 02:07

Ладно возможно ты что то там понимаешь, чего не понимаю я, но ничего гениального ты не показал. Ты просто хочешь, чтобы по дефолту из функции всегда возвращался бросок ошибки, который ты будешь всегда перехватывать в другом месте. Эта мысль, сама по себе не лишена смысла, есть чем то похожие концепции в языках, есть call/cc в scheme, например. Это, делается, в основном, чтобы можно было гулять по дереву вызовов, для нелокального выхода. И даже goto чем то тут близок. Только ты настолько коряво изъясняешься, что создается ощущение, что ты слышал звон, да не знаешь где он.

Mаxmaxmаximus 08.11.2015 02:10

loljs, мляяять я говорю что если функция не выполнила свое название то она НЕ ДОЛЖНА НИЧЕГО ВОЗВРАЩАТЬ! ОНА ЗАВЕРШИЛАСЬ С ОШИБКОЙ И ДОЛЖДНА БРОСИТЬ ОШИБКУ ПО КАНАЛУ ОШИБОК!!

ЕСТЬ СТЕК ВЫЗОВОВ СУКА!!

ВУНКЦИЯ ОТРАБАТЫВАЕТ И ОТПРАВЛЯЕТ ПО СТЕКУ ВВЕРХ ДАННЫЕ!!
ПРИДУМАЛИ ЧТО ЕСЛИ ОнА ОТРаобтала ВЕРНО ТО ОНА ОТПРАВЛЯЕТ ИХ ЧЕРЕЗ ОПЕРАТОР РЕТУРН А ЕСЛИ НЕ ВЕРНО ТО ЧЕРЕЗ ОПЕРАТОР ТХРОВ!!


ВЫШЕ ЖЕ МЫ ЧЕТКО ЗНАЕМ КАК ОТЛАВЛИВАЕТЬ КАЖДЫЙ КАНАЛ.

КАНАЛ ОШИБОК СЛУШАЕТСЯ ОПЕРАТОРОМ try А КАНАЛ ВЕРНОГО ИСПОЛНЕНИЯ ОПЕРАТОРОМ ПРИСВАИВАНИЯ var = func()


Я ЛИШЬ ГОВОРЮ ЧТО НЕ СТОИТ ПО КАНАЛУ ВЕРНОГО ИСПОЛНЕНИЯ ФУНКЦИИ ПЕРЕДАВАТЬ КАКОЕ ТО ДАННОЕ КОТОРОЕ ПОТОМ НАДО БЛОКОМ if ПРОВЕРИТЬ НА ЧТО ТО И ПРОВЕРИТЬ НЕ СИМВОЛИЗИРУЕТ ЛИ ОНО ОШИБКУ!

ПОЧЕМПУ?? ПОТОМУ ЧТО НЕ БУДЕТ СТАНДАТИЗАЦИИ! ОДНА ФУНКЦИЯ В СЛУЧАЕ НЕВЕРНОЙ ОТРАБОТКИ ВЕРНЕТ ОДНО ЗНАЧЕНИЕ СИМВОЛИЗИРУЮЩЕЕ НЕВЕРНУЮ ОТРАБОТКУ, А ДРУГАЯ ДРУОЕ!

ДЛЯ ОШИБОК ЕСТЬ СПЕЦИАЛЬНЫЙ КАНАЛ ВОЗВРАТА ДАННЫХ ПО СТЕКУ ВВЕРХ!! БОЛЕЕ ТОГО ОН О ТЛИЧАЕТСЯ ОТ РЕТУРНА МЕХАНИЗМОМ ВСПЛЫТИЯ!

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

Хош я те СХЕМУ НАРИСУЮ????

loljs 08.11.2015 02:15

Mаxmaxmаximus,
Знатно я тебя обосрал. Даже пердак не выдержал, минус поставил, как мокрощелка прям, у меня встал на тебя.

Кстати, ты редкий вид, у тебя одновременно и мания величия, и тупость терминальной стадии. Такое редко встречается. Обычно маниакальность и тупость не сочетаются.

Mаxmaxmаximus 08.11.2015 02:17

loljs, попробуй что нибудь ад рем, если сможешь тягаться с моим уровнем ;)
https://ru.wikipedia.org/wiki/Ad_hominem

loljs 08.11.2015 02:24

Цитата:

Сообщение от Mаxmaxmаximus
А КАНАЛ ВЕРНОГО ИСПОЛНЕНИЯ ОПЕРАТОРОМ ПРИСВАИВАНИЯ var = func()

Все, тут я окончательно понял, что ты нулевой. Ретурн всегда синхронно ложит значение на стек, дебил, неважно, присваивание там или что-то дргое. А у throw нет никакого канала (в js конкретно), исполнитель просто сбрасывает вычисления, стек не раскручивается, а сбрасывается, исключение, или выброшенное значение передается либо в catch, либо наверх. Возьмись за основы, ты и есть нубьё голимое, к тому же тупое.

Mаxmaxmаximus 08.11.2015 02:29

Цитата:

Сообщение от loljs
Все, тут я окончательно понял, что ты нулевой.

я не нуливой я превзошел тебя феноминально наши уровни не сопостовимы я словно божество по сравнению с тобой вот ты и не можешь осознать всех моих великих мыслей, они не влезают в твой приметивный мозг муравья)

Цитата:

Сообщение от loljs
Ретурн всегда синхронно ложит значение на стек, дебил, неважно, присваивание там или что-то дргое.

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

Цитата:

Сообщение от loljs
А у throw нет никакого канала

нет есть абстракция канал ошибок и канал удачного исполнения. ретурн это канал удачного исплнения а throw это канал ошибок.


Цитата:

Сообщение от loljs
в js конкретно

в js конкретно есть 2 канала

Цитата:

Сообщение от loljs
стек не раскручивается

когда исключение идет вверх по стеку стек "раскручивается" так же как и при return
данные идут либо по каналу удачнго исполнения (return) либо по каналу ошибок (throw)

Цитата:

Сообщение от loljs
ты и есть нубьё голимое

нет я гений специалист

Цитата:

Сообщение от loljs
к тому же тупое.

я череззвычайно умный и образованый человек

loljs 08.11.2015 02:33

Mаxmaxmаximus,
Разговаривать больше не о чем, ты мне не интересен. Я просто думал, изначально, что у тебя есть какие то годные идеи, которые ты изложить внятно не можешь. Оказалось что ты просто некомпетентен в вопросах о которых взялся рассуждать.

Mаxmaxmаximus 08.11.2015 02:34

loljs, попробуй что нибудь ад рем ;) али снова слился? слишком сложные аргументы для тебя, муравьишка, да?
https://ru.wikipedia.org/wiki/Ad_hominem


Цитата:

Сообщение от loljs
Оказалось что ты просто некомпетентен в вопросах о которых взялся рассуждать.

Нет я предельно компетентен а этих вопросах и я не только догнал то что человечество уже создало, я превзошел этот уровень и могу придумывать новое, превосходящее)


Если ты не заметил тут часто говорили что я не прав но в спорах проигрывали в 100% случаях (ну не считая в самом уж начале когда я реально чушь нес лет 6 назад).


Есть тут лишь человека 2 которые знают мой уровень и они в состоянии осознать о чем я говорю, и смотря на результаты моих трудов, к ним начинают примыкать и остальные. А ты же очередной низкоуровневый новичек) который настолько тупой что не понимает меня в силу своей тупости.


Ну я вот выше привел тебе аргументы, ты ни как не опроверг, следоватльно я выиграл спор а ты проиграл)

Вот тебе и наглядный ФАКТ! И так бывает в 100% случаях когда люди берутся со мной спорить и мне не надоедает.

loljs 08.11.2015 02:41

Цитата:

Сообщение от Mаxmaxmаximus
6 назад

То есть ты уже 6 лет в программировании? Я думал меньше. Тогда совсем печальная картинка складывается.

loljs 08.11.2015 02:46

Mаxmaxmаximus,
А про сливы участников этого форума, кстати, ты зря себе льстишь. Я тут поглядел, уровень не ахти, толкут воду в ступе, так что, неудивительно, что ты кого то поимел, несмотря на твою тупость, верю. Иди на lambda-the-ultimate cлей посанов, или на y-combinator, гений недоделаный.

Mаxmaxmаximus 08.11.2015 02:47

loljs, я 9 лет занимаюсь прогарммированием и достиг невероятных высот. к тому же ты снова использовал аргумент https://ru.wikipedia.org/wiki/Ad_hominem

и ты ни как не опроверг мои аргументы)


Цитата:

Сообщение от loljs
несмотря на твою тупость

в чем выражается моя тупостЬ? я переспорил тебя, я имею острый ум. я доказал свою точку зрения которая очень глубокая а ты тупил. где же тут моя тупость если это мой ИНТЕЛЛЕКТ наоброт а не тупость)? ну ка обьясни, пиздун
а хотя не обьясняй, я понимаю что это очередная попытка сменить тему на оскорбления. ты слился и начал оскорблять потому что злишься тебе нечего ответить по делу ты не в силах бороться с моими аргументами по этому наподаешь на меня) типичная ситуация у быдал)

То есть у нас как бы Я выиграл спор а ТЫ проиграл, Я умный а ТЫ тупой. А ты все говоришь наоборот лол) это почему так? Ты типа надеешься меня ОБМАНУТЬ и УБЕДИТЬ В ЭТОМ)? Единственное что в твоих силах так аргументы, попробуй что то противопоставить моим аргументам тогда у тебя есть шанс) а пока это лишь забавляющий меня слитый хомячек пытающиеся выкрутиться ;)

loljs 08.11.2015 02:52

Цитата:

Сообщение от Mаxmaxmаximus
и ты ни как не опроверг мои аргументы)

да твои аргументы для меня как собачий лай, я что же буду теперь с каждой шавкой спорить? К тому же я с тобой разговаривал нормально, до поры, пока тебя не понесло. А 9 лет и твой уровень -- это жесть конечно.

Mаxmaxmаximus 08.11.2015 02:54

Цитата:

Сообщение от loljs
да твои аргументы для меня как собачий лай

https://ru.wikipedia.org/wiki/Ad_hominem


- аргумент раз, аргумнет два, аргумент три
- твои аргументы плохие по этому не считаются
- ты можешь им что нибудь противопоставить?
- не, они настолько плохие что я не могу
- а в чем они плохие?
- они настолько плохие что я даже не могу обьяснить почему они плохие, ну меегаплохие аргументы, сколько раз сюда ходил лучше были, очень плохие аргументы, сколько раз на форум не приходил, лучше были

слив засчитан)

Mаxmaxmаximus 08.11.2015 07:52

loljs, смотри школьник, я не верну дефолтное значение или строку типа 'unknown', я БРОШУ ОШИБКУ, потому что я ХОРОШИЙ ПРОГРАММИСТ и УМЕЮ пользоваться язком ТАК, как задумывали его разработчики.


Mаxmaxmаximus 08.11.2015 08:21

репозиторий транслятора https://github.com/Maxmaxmaximus/coffeepp

по поводу логики, первый этап это построение AST абстрактного синтаксического дерева.
У меня не будет дерева разбора в качестве промежуточного вариванта, я сразу буду парсить из токенов в AST.


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






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


Далее мы получаем массив таких токенов и позже я расскажу как мы будем строить по нему ast и как удобно описывать разные конструкции

Mаxmaxmаximus 08.11.2015 08:42

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

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

loljs 08.11.2015 08:50

Даже регулярки не осилил, клоун.

Mаxmaxmаximus 08.11.2015 08:55

loljs,
> человек использует регулярки
> Даже регулярки не осилил

да у тебя же батруддинов, дегенерат)

loljs 08.11.2015 08:58

Цитата:

Сообщение от Mаxmaxmаximus
использует регулярки

нах*ить бредостроки не означает *использовать*. Ты их не знаешь толком, это сразу видно.

Mаxmaxmаximus 08.11.2015 09:04

Цитата:

Сообщение от loljs
бредостроки

что бредового в моей регулярке?

Цитата:

Сообщение от loljs
Ты их не знаешь толком

в чем это выражается?


Часовой пояс GMT +3, время: 17:02.