Помогает ли JSLint, JSHint или какой-либо другой инструмент анализа статического кода с открытым исходным кодом добавлять пользовательские правила для соответствия коду или есть некоторые синтаксические анализаторы, совместимые с ECMAScript, которые я могу использовать, чтобы получить результаты как можно ближе к тем, которые видны в сниппет ниже?Статический анализ с пользовательскими правилами для JavaScript?
Например, я хотел бы изучить код JavaScript и указать, какие функции вызывают, если он вызывает библиотеку (или API, предоставленную смартфонами для виджетов HTML5), чтобы зарегистрировать все, что подпадает под пространства имен этого API, чтобы создать дерево объектов и их свойства, чтобы увидеть, вызвана ли функция из того, из какого объекта можно проследить, возможно, с выходом в XML, JSON или другом структурированном формате.
Скажем, например, я не этот JavaScript-код (он не делает и только ради аргумента):
jobs = mylibrary.getJobs();
found = jobs.find("Python");
list = found.convert("html");
Я хочу, чтобы мой анализатор инструмент, чтобы получить это:
{
"mylibrary": {
"jobs": {"maker":"getJobs", "parent": "mylibrary"},
"found": {"maker": "find", "parent": "jobs", "parameters": "Python"},
"list": {"maker": "convert", "parent": "found"}
}
}
Вы имеете в виду аналитику, но возвращаете данные XML Analytics в свой контент HTML5? Например, отслеживать всех людей, которые щелкают аудио HTML5, а затем отправлять эти данные в XML-данные, чтобы вы могли экспортировать их в диаграммы и т. Д.? – TheBlackBenzKid
@TheBlackBenzKid: Я имею в виду статический анализ (не динамический анализ), а код (разделы .js и
Я пробовал что-то с помощью javascript-интерпретатора, к которому можно получить доступ из кода (в моем случае python). Поэтому переводчики вроде
pynoceros
,pynarcissus
илиpyv8
могут мне помочь.Существует ответ здесь о том, как установить py8: https://stackoverflow.com/a/11879224/1577343
Поскольку с вышеизложенным подходом я не имел большого успеха, я предпочитаю статическое решение для анализа, который использует совместимый анализатор ECMAScript.
Со статическим анализом, насколько я мог получить, используется парсер JSLINT (Run JSLint on a .js file from debugging console in chrome or firefox): Но я не знаю, как это использовать дальше.
источник
2012-08-07 12:43:55
PMD поддерживает ECMAScript статический анализ с помощью пользовательских правил:
Ссылки
pmd/pmd-javascript/src/main/resources/rulesets/ecmascript at master · pmd/pmd
Analyzing Javascript with PMD Maven
PMD – PMD Properties
PMD – How to make a rule set
combine two PMD checks
Using regular expressions in PMD rules
PMD – IDE Integrations
источник
2017-07-14 16:06:08