2015-05-30 9 views
6

Stavo cercando di analizzare il codice e riformattarlo, ma sembra che la citazione ignorerà solo i commenti.È possibile ottenere commenti con macro?

Esiste un modo per raggiungere questo obiettivo? Credo di dover immergermi nel lato di erlang?

+0

Se non è possibile ottenere i commenti all'interno macro Elixir, si potrebbe semplicemente voler elaborare direttamente alla fonte crudo. –

risposta

6

No, non è possibile ottenere commenti di codice all'interno di macro. Non diventano mai parte dell'AST e vengono scartati ancora nel tokenizzatore di Elixir.

+0

Quindi, suppongo che non sia possibile sovrascrivere alcuna funzione nel modulo ': elixir'? In tal caso, considereresti facoltativamente la conservazione dei commenti in tokenizer? – Kabie

+0

Sto bene con una patch che conserva i commenti nel tokenizer purché non sia il comportamento predefinito in quanto complicherebbe gravemente il parser. Detto questo, non credo che l'applicazione di patch per il tokenizer possa aiutarti. –

2

Sembra che i commenti siano gestiti a livello di tokenizer, quindi il parser non li vedrà nemmeno. Il relevantparts dal tokenizzatore di elisir indica che i commenti vengono scartati abbastanza presto nella pipeline. This test case dal nucleo elisir ci dice la stessa cosa:

comments_test() -> 
    [{number, {1,1,2}, 1},{eol, {1,3,4}},{number,{2,1,2},2}] = tokenize("1 # Comment\n2"). 
Problemi correlati