Почему программистам "настоятельно рекомендуется не заниматься синтаксическим анализом преобразований"? - PullRequest
6 голосов
/ 22 октября 2011

В соответствии с erl_id_trans документацией :

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

Почему программистам настоятельно рекомендуется не использовать parse_transform / 2?Не будет ли это поддерживаться в будущем?Кроме parse_transform / 2, есть ли механизм для вставки кода (модификации байт-кода во время выполнения) или изменения исходного кода перед его компиляцией?

1 Ответ

9 голосов
/ 22 октября 2011

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

Так что если вы используете Parse teansforms и они ломаются из-за новой версии Erlang, вы не можете жаловаться.

Добавление: в комментариях возник вопрос о других способах манипулирования исходным или байт-кодом Erlang

  • Для полуавтоматического рефакторинга кода существует Wrangler

  • У вас есть доступ к препроцессору Erlang , tokenizer и парсер , что дает, например, синтаксические деревья вашей программы

  • Для удобного и портативного манипулирования абстрактными формами (что вы получаете из синтаксического анализатора или даже лучевых файлов) есть syntax_tools

  • Для работы с файлами лучей есть beam_lib

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...