Я пытался разобрать код и переформатировать их, но кажется, что цитата просто проигнорирует комментарии.Можно ли получить комментарии с помощью макроса?
Есть ли способ достичь этого? Думаю, я должен нырнуть в сторону эрланга?
Я пытался разобрать код и переформатировать их, но кажется, что цитата просто проигнорирует комментарии.Можно ли получить комментарии с помощью макроса?
Есть ли способ достичь этого? Думаю, я должен нырнуть в сторону эрланга?
Нет, вы не можете получить комментарии кодов внутри макросов. Они никогда не становятся частью АСТ и отбрасываются еще в токенизаторе Эликсира.
Итак, я думаю, что невозможно переопределить любые функции в модуле ': elixir'? Если да, можете ли вы рассмотреть возможность сохранения комментариев в токенизаторе? – Kabie
Я в порядке с патчем, который сохраняет комментарии в токенизаторе, если это не поведение по умолчанию, так как это сильно усложнит парсер. Тем не менее, я не думаю, что исправление только токенизатора поможет вам. –
Кажется, что комментарии обрабатываются на уровне токенизатора, поэтому синтаксический анализатор даже не видит их. relevantparts из токенизатора эликсира указывают, что комментарии отбрасываются довольно рано в конвейере. This test case из ядра эликсира говорит нам то же самое:
comments_test() ->
[{number, {1,1,2}, 1},{eol, {1,3,4}},{number,{2,1,2},2}] = tokenize("1 # Comment\n2").
Если вы не можете получить комментарии внутри Эликсир макросов, вы можете просто хотите обработать сырой источник непосредственно. –