Size: a a a

F# Flood: ПДД made functional, making illegal state INGIBDDdale

2020 April 22

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Если у тебя макрос, который как-то обрабатывает код, то внутри него IDE тоже отвалится.
my_macro! {
  // тут IDE ничего не подскажет
  1 +2 + 3 + 4
}
хм, а почему не подсказывает?
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
хм, а почему не подсказывает?
Потому что не умеет IDE работать с автодополнением сквозь макросы
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Потому что не умеет IDE работать с автодополнением сквозь макросы
ну, это я понимаю. Мне не очевидно, почему не умеет. Я плохо знаком с макросами в целом
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Но в принципе могу не заебывать вопросами)
источник

оГ

отец Григорий... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
да это я так, для души
У тя чо там 48 часов в сутках? Скала, гамы, пиво,  двое детей... ещё и пописываешь для души.
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
ну, это я понимаю. Мне не очевидно, почему не умеет. Я плохо знаком с макросами в целом
Потому что ты можешь полностью свой синтаксис сделать в макросе, разобрать текст внутри него как угодно
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Поэтому что и как ей подсказывать
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
любопытно
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
отец Григорий
У тя чо там 48 часов в сутках? Скала, гамы, пиво,  двое детей... ещё и пописываешь для души.
я ещё и пописываю без души!!11
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
любопытно
Но если макросы более слабые по своей мощи (типа того, что в дотти, где у тебя всё что принимают макросы - обязано быть компилируемым скала кодом), то у IDE проблем нет и она умеет всё подсветить и показать.

Т.е. я вон, иногда играюсь с дотти в идее и она умеет в местных макросах подсказывать.
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Но если макросы более слабые по своей мощи (типа того, что в дотти, где у тебя всё что принимают макросы - обязано быть компилируемым скала кодом), то у IDE проблем нет и она умеет всё подсветить и показать.

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

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
но тогда интересно, как компилятор справляется с макросами. Лексер с парсером же какими были, такими и остались
Если раст встречает вызов макроса, то он останавливается на лексическом анализе и тупо отдает в макрос поток токенов.
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Дальше - это забота макроса
источник

оГ

отец Григорий... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
я ещё и пописываю без души!!11
Я бля тут собирался 2 мес пофиксить какие-то вулнерабилитиз в нодовских модулях, которые сейф затянул. А то заходишь на гх а тебе - алярма-алярма всё пропало, Наташ
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
эх ты, не поддержал сортирный юмор!!1
источник

оГ

отец Григорий... in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Зассал
источник

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Видно, пива с утра не пил
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Doge Shibu
Дальше - это забота макроса
т.е. при определении макроса ты каким-то образом должен определить и синтаксис/правила для парсинга?
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
эх ты, не поддержал сортирный юмор!!1
никто не мог предположить, что ты этим занимаешься без души. Это ж какая потеря
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
т.е. при определении макроса ты каким-то образом должен определить и синтаксис/правила для парсинга?
Да. Либо через macro_rules (там условный паттерн матчинг по токенам), либо через процедурный макрос, который обычная функция из TokenStream в TokenStream
источник