Size: a a a

Compiler Development

2020 January 03

AH

Ayrat Hudaygulov in Compiler Development
то есть слово одно, но правила парсинга разные, для компилятора это в общем новая конструкция
источник

E

EgorBo in Compiler Development
ну я к тому что у нас паттерн матчинг без слова "match" :)
источник

M

MaxGraey in Compiler Development
EgorBo
в C# - switch
В Reason тоже switch:
switch (myList) {
 | [] => print("empty")
 | [first, ...theRest] => print("first " ++ first)
};
источник

AV

Alexey Veselovsky in Compiler Development
MaxGraey
Ну могли бы сделать и так:
case (x) {
  …
}
И не пришлось бы вводить новое ключевое слово
Да. Есть case, это тоже частный случай pm. Надо только расширить
источник

AK

Andrei Kurosh in Compiler Development
EgorBo
в C# - switch
Switch тоже хороший вариант, тк классический сишный switch прямо напрашивается на апгрейд до PM. Но вот inspect я до этого нигде не видел.
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
Switch тоже хороший вариант, тк классический сишный switch прямо напрашивается на апгрейд до PM. Но вот inspect я до этого нигде не видел.
Проблема в том, что switch это стейтмент, а pm это уже выражение и уже одно это будет как бы конфликтовать как при компиляции так и при когнитивной работе для разработчика
источник

AK

Andrei Kurosh in Compiler Development
MaxGraey
Проблема в том, что switch это стейтмент, а pm это уже выражение и уже одно это будет как бы конфликтовать как при компиляции так и при когнитивной работе для разработчика
Парсингу мешать не будет - implicit return в плюсах же нет. А вот про привычку программиста пожалуй соглашусь
источник

AZ

Alexander Zaitsev in Compiler Development
Паттерн матчинг уже давно мусолят в комитете
источник

E

EgorBo in Compiler Development
MaxGraey
Проблема в том, что switch это стейтмент, а pm это уже выражение и уже одно это будет как бы конфликтовать как при компиляции так и при когнитивной работе для разработчика
у нас это и стейтмент и экспрешн
источник

E

EgorBo in Compiler Development
но очевидно это усложняет парсинг, да
источник

YS

Yuriy Syrovetskiy in Compiler Development
EgorBo
у нас это и стейтмент и экспрешн
а у нас любой стэйтмент — это экспрешн (с оговорками)
источник

C

Constantine in Compiler Development
источник

AH

Ayrat Hudaygulov in Compiler Development
А классно выглядит.
источник

AH

Ayrat Hudaygulov in Compiler Development
Но @I_vlxy_I предпочёл бы механизм для реализации такой штуки нежели саму штуку.
источник

M

MaxGraey in Compiler Development
А @EgorBo сказал бы «неплохо»
источник

PZ

Pavel Zhdanovich in Compiler Development
Ребята, кто шарит в Roslyn? Хочу сделать что-то типо AOT и что б Intellisence работал. Вопрос в том, как добавить в AST кастомные вещи типа дополнительных методов, которых в исходниках во время набора кода нет, но их добавит пост-процессор?
источник

RE

Roman Elizarov in Compiler Development
😱
источник

AV

Alexey Veselovsky in Compiler Development
максимально интуитивно понятно!
источник

AV

Alexey Veselovsky in Compiler Development
видимо это не тот zero, которого вы ищите. создается еще один.
источник

AV

Alexey Veselovsky in Compiler Development
с другой областью видимости и свойствами
источник