Как определить, является ли комментарий описательным комментарием по сравнению с закомментированным кодом при анализе с помощью ESLint

#compilation #eslint #abstract-syntax-tree

Вопрос:

При анализе программы с использованием ESLint сгенерированный AST включает комментарии.

Учитывая следующие замечания в программе:

 // Some descriptive comment.
// const thisIsCommentedOutCode = true;
 

Можно ли проверить, содержит ли комментарий допустимый код или нет? Что делать, если закомментированный код занял несколько строк?

 // Some descriptive comment.
// if ( thisIsCommentedOutCode )
// {
//   doSomething();
// }
//
 

Комментарии:

1. это немного сложно, так как закомментированный код и описательные комментарии перекрываются, например, при предоставлении фрагментов кода в документации; или, возможно, закомментированный код может быть немного недействительным, но все равно должен быть помечен как таковой; вам понадобится эвристика, которая дает вероятность принадлежности кода к той или иной категории, я бы начал сначала с распознавания языковых элементов, таких как скобки, фигурные скобки, некоторые ключевые слова и т. Д., Но человеку придется проверить результаты.