Size: a a a

Compiler Development

2020 January 07

YS

Yuriy Syrovetskiy in Compiler Development
можно зафиксировать размер отступов, например, в Питоне есть "закон", по которому отступы можно только 4 пробела
источник

AH

Ayrat Hudaygulov in Compiler Development
Kir
Претти-принтер, который восстанавливает индентацию
Но он может восстановить ее по другому. Не то чтобы мне это было важно, просто замечание
источник

FO

FORTRAN ONE LOVE in Compiler Development
Ayrat Hudaygulov
Ну то есть например вводить в аст ноды скоупа вместо хранения идентации в самих нодах?
да. а индентацию извне задавать. вдруг вы хотите табами все заполнять, вместо пробелов?
источник

AH

Ayrat Hudaygulov in Compiler Development
Yuriy Syrovetskiy
можно зафиксировать размер отступов, например, в Питоне есть "закон", по которому отступы можно только 4 пробела
Это слишком жестко, но допустим
источник

YS

Yuriy Syrovetskiy in Compiler Development
Ayrat Hudaygulov
Ну то есть например вводить в аст ноды скоупа вместо хранения идентации в самих нодах?
нет, ноды уже являются скоупами
источник

AH

Ayrat Hudaygulov in Compiler Development
Yuriy Syrovetskiy
нет, ноды уже являются скоупами
Логично блин
источник

K

Kir in Compiler Development
Ayrat Hudaygulov
Но он может восстановить ее по другому. Не то чтобы мне это было важно, просто замечание
Ещё можно хранить поток лексем после лексера. А в аст хранить позицию. При выводе ошибки восстанавливать кусок программы +-2 строки вокруг ошибки.
источник

AH

Ayrat Hudaygulov in Compiler Development
Kir
Ещё можно хранить поток лексем после лексера. А в аст хранить позицию. При выводе ошибки восстанавливать кусок программы +-2 строки вокруг ошибки.
Кстати, вот. Это важный момент. Без хранения позиции подсвечивать ошибки будет непросто.
источник

YS

Yuriy Syrovetskiy in Compiler Development
сегодня ещё не рассказывали, чем AST от ST отличается?
источник

YS

Yuriy Syrovetskiy in Compiler Development
с позициями синтаксическое дерево точно не будет абстрактным
источник

AH

Ayrat Hudaygulov in Compiler Development
Yuriy Syrovetskiy
с позициями синтаксическое дерево точно не будет абстрактным
Окей, принял)

Но похоже что придётся хранить позицию
источник

YS

Yuriy Syrovetskiy in Compiler Development
Ayrat Hudaygulov
Кстати, вот. Это важный момент. Без хранения позиции подсвечивать ошибки будет непросто.
аннотируйте все узлы позициями. говорят, с Fix это легко
источник

YS

Yaroslav Schekin in Compiler Development
Ayrat Hudaygulov
Окей, принял)

Но похоже что придётся хранить позицию
А Вам оно зачем (если просто для форматирования и т.п. — может, остановиться на CST (дереве разбора))?
источник

AH

Ayrat Hudaygulov in Compiler Development
Yaroslav Schekin
А Вам оно зачем (если просто для форматирования и т.п. — может, остановиться на CST (дереве разбора))?
У меня перед глазами компилятор фшарпа где начальная позиция (строка, столбец) из сорцов записана прям в ST для каждой ноды.

И мне вот интересно, можно ли по-другому сделать.
источник

AK

Andrei Kurosh in Compiler Development
Ayrat Hudaygulov
У меня перед глазами компилятор фшарпа где начальная позиция (строка, столбец) из сорцов записана прям в ST для каждой ноды.

И мне вот интересно, можно ли по-другому сделать.
Эта информация все равно понадобится для отображения ошибок
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Они object файлы генерят, это не в счет)
По классике гцц генерит ассемблерный код, который жрет gas, это сейчас только шланг показал пример что асм генерить необязательно.
источник

AT

Alexander Tchitchigin in Compiler Development
источник

BD

Berkus Decker in Compiler Development
Http? Сурьезно
источник

AT

Alexander Tchitchigin in Compiler Development
Berkus Decker
Http? Сурьезно
Ни пароль, ни кредитку не спрашивают - в чём смысл HTTPS, кроме пафоса "диджитал резистанс"?
источник

YS

Yuriy Syrovetskiy in Compiler Development
Alexander Tchitchigin
Ни пароль, ни кредитку не спрашивают - в чём смысл HTTPS, кроме пафоса "диджитал резистанс"?
чтобы провайдер не всунул тебе рекламу в трафик
источник