Size: a a a

Compiler Development

2020 January 07

DP

Dmitry Ponyatov in Compiler Development
Ayrat Hudaygulov
Кстати нужен совет знающих людей.

Для языков с идентацией какие ещё есть способы кроме хранения идентации в аст?
а разве индентация не равна глубине вложенности дерева AST ?
источник

AH

Ayrat Hudaygulov in Compiler Development
Dmitry Ponyatov
а разве индентация не равна глубине вложенности дерева AST ?
В целом да, но анализ такого дерева проще делать со знанием позиции ноды в сорцах. Тогда можно делать всякое со скоупами и намеренным сломом идентации, например

let a = [ 1
2
3
4
]
источник

AH

Ayrat Hudaygulov in Compiler Development
Не уверен, но в хаскеле это вроде не должно скомпилиться
источник

AH

Ayrat Hudaygulov in Compiler Development
Хотя намерения программиста очевидны
источник

DP

Dmitry Ponyatov in Compiler Development
Ayrat Hudaygulov
Хотя намерения программиста очевидны
нафигачить синтаксических ошибок?
источник

YS

Yuriy Syrovetskiy in Compiler Development
Ayrat Hudaygulov
Не уверен, но в хаскеле это вроде не должно скомпилиться
Хаскель не поймёт, а в YAML такое читается
источник

AH

Ayrat Hudaygulov in Compiler Development
Dmitry Ponyatov
нафигачить синтаксических ошибок?
Ну, если речь про запятые, то нет
источник

YS

Yuriy Syrovetskiy in Compiler Development
и Питон понимает
источник

DP

Dmitry Ponyatov in Compiler Development
Ayrat Hudaygulov
Ну, если речь про запятые, то нет
индентация жестко прописывается в синтаксисе языка, в Go поступили правильно зафиксировав пробелы вместо пидоновского дурильника с табуляциями
источник

YS

Yuriy Syrovetskiy in Compiler Development
Dmitry Ponyatov
индентация жестко прописывается в синтаксисе языка, в Go поступили правильно зафиксировав пробелы вместо пидоновского дурильника с табуляциями
какого дурильника? в Питоне и Хаскеле табы (почти) запрещены
источник

YS

Yuriy Syrovetskiy in Compiler Development
хотя я бы предпочёл для отступов использовать, наоборот, только табы
источник

МБ

Михаил Бахтерев in Compiler Development
Yuriy Syrovetskiy
хотя я бы предпочёл для отступов использовать, наоборот, только табы
Выражения выравнивать неудобно
источник

YS

Yuriy Syrovetskiy in Compiler Development
Михаил Бахтерев
Выражения выравнивать неудобно
можно пример такого выражения?
источник

K

Kir in Compiler Development
Выравнивание в хаскелле хорошо сделано
источник

YS

Yuriy Syrovetskiy in Compiler Development
Kir
Выравнивание в хаскелле хорошо сделано
но всё ещё далеко от идеала
источник

DP

Dmitry Ponyatov in Compiler Development
источник

МБ

Михаил Бахтерев in Compiler Development
a = x
 + y
 + z
источник

K

Kir in Compiler Development
Yuriy Syrovetskiy
но всё ещё далеко от идеала
согласен, let-выражения, например
источник

YS

Yuriy Syrovetskiy in Compiler Development
c эластичными табстопами это должно выглядеть примерно так:

a→= x
─→+ y
─→+ z
источник

YS

Yuriy Syrovetskiy in Compiler Development
инфиксные операции выравнивать вообще непонятно как
источник