gavr_sas
Очень быстрый гайд по написанию фронтенда языка, пишем лексер(токенайзер), он нужен чтобы превращать неразборчивую писанину в цепочки токенов, типа s_aS = 0.3432345f в [Identifier Equel Float] Чтобы потом с ними можно было удобнее работать, сохраняем…
Придумайте список токенов на которые делится ваш язык(не АСТ) и напишите парсер для каждой используя базу и несколько хелпер функций вроде isAlphaNumeric для простого парсинга идентификаторов 3
#niva
#niva
gavr_sas
Photo
1) Заготовленные парсеры вроде parseNumber будут мотать ленту пока не распарсят определенный токен
x = ^23.34234
parseNumber -> numToken(23.34234)
x = 23.32234^
2) В цикле while !done() проходим по всем символам, проверяя текущий на какой либо признак и используя эти мини парсеры.
3) И разумеется обкладываем все это тестами, вообще довольно прикольно ставить себе цели добавляя новый еще не работающий тест, а затем делать его рабочим, ага TDD тут очень полезно, в отличии от гуев. #niva
x = ^23.34234
parseNumber -> numToken(23.34234)
x = 23.32234^
2) В цикле while !done() проходим по всем символам, проверяя текущий на какой либо признак и используя эти мини парсеры.
3) И разумеется обкладываем все это тестами, вообще довольно прикольно ставить себе цели добавляя новый еще не работающий тест, а затем делать его рабочим, ага TDD тут очень полезно, в отличии от гуев. #niva
👍1
#KotlinBug
Казалось бы разница в одно ключевое слово
Нно бага, если в таком классе сделать компаньёна, то его инициализатор будет происходить не в статической части, а в обычном конструкторе! то бишь срабатывать каждую инициализацию
Казалось бы разница в одно ключевое слово
value которое делает классы с одним полем зерокостными, тк кк инлайнит это поле вместо класса во всех местах использования.Нно бага, если в таком классе сделать компаньёна, то его инициализатор будет происходить не в статической части, а в обычном конструкторе! то бишь срабатывать каждую инициализацию
Forwarded from Pey Tea
Это как в дьябло у тебя из любого волка может выпасть легендарный мечь или там 500 золотых в бочке зерна в сакреде
Forwarded from Pey Tea
gavr_sas
Это как в дьябло у тебя из любого волка может выпасть легендарный мечь или там 500 золотых в бочке зерна в сакреде
Я из-за дебильного рандома эти игры и возненавидел
Forwarded from Pey Tea
В элден ринге лут от босса-краба это крабовые палочки
Forwarded from Pey Tea
Причем, гарантированно, ну типа, это же краб, че ты хотел вообще
🤯2