有可能用宏来评论吗?

时间:2015-05-30 07:01:49

标签: macros elixir

我试图解析一些代码并重新格式化,但似乎引用只会忽略这些注释。

有没有办法实现这个目标?我想我必须潜入erlang一侧?

2 个答案:

答案 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").