我试图解析一些代码并重新格式化,但似乎引用只会忽略这些注释。
有没有办法实现这个目标?我想我必须潜入erlang一侧?
答案 0 :(得分:6)
不,你不能在宏中获得代码注释。它们永远不会成为AST的一部分,并且仍然被丢弃在Elixir的标记器中。
答案 1 :(得分:2)
似乎注释在tokenizer级别处理,因此解析器甚至不会看到它们。 elixir tokenizer中的relevant parts表示注释在管道中很早就被丢弃了。来自elixir core的This test case告诉我们同样的事情:
comments_test() ->
[{number, {1,1,2}, 1},{eol, {1,3,4}},{number,{2,1,2},2}] = tokenize("1 # Comment\n2").