скучнейшее событие года начинается https://youtu.be/cNfINi5CNbY
YouTube
Google Keynote (Google I/O ‘23)
Tune in to find out how we're furthering our mission to organize the world’s information and make it universally accessible and useful.
To watch this keynote interpreted in American Sign Language (ASL), please click here:
https://youtube.com/live/bqnlp…
To watch this keynote interpreted in American Sign Language (ASL), please click here:
https://youtube.com/live/bqnlp…
👍1
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 золотых в бочке зерна в сакреде