2012-05-29 9 views
5

Rhinoパーサーを初めて使用しています。このRhinoパーサをJavaScriptコードで使用して、任意のhtmlファイルのJavaScriptコードの抽象構文ツリーを抽出できますか?これは、私がこれを始めるべきかどうかです。これは、javascriptで使われているキーワードと単語の比率を計算し、共通の解読スキームを特定し、fromCharCode()などの特定のクラスの関数呼び出しの出現を計算するコードを、 、eval()、および復号化のために一般的に使用されるいくつかの文字列関数 およびドライブバイダウンロードの悪用を実行します。JavaScriptコードのRhinoパーサーを使用してJavaScriptの文字列を解析する

+0

ここ比を識別子にキーワードを計算する単純な例ですAST APIは[ライノ1.7R3(https://developer.mozilla.org/en-US/に加えdocs/New_in_Rhino_1.7R3) – McDowell

答えて

3

私が知る限り、RhinoのJavaScriptからASTにアクセスすることはできません。私はEsprimaパーザを見ています。これは、JavaScriptで書かれた完全なJavaScriptパーサであり、コード解析を行うためのシンプルなAPIを備えています。 FYI

var tokens = esprima.parse(script, { tokens: true }).tokens; 
var identifierCount = 0; 
var keywordCount = 0; 

tokens.forEach(function (token) { 
    if (token.type === 'Keyword') { 
     keywordCount++; 
    } 
    else if (token.type === 'Identifier') { 
     identifierCount++; 
    } 
}); 

var ratio = keywordCount/identifierCount; 
+0

このパーサーは本当に上のコードは私のために働いて良かったありがとうございました。このパーサーのチュートリアルを提供して、javscriptでWebページのJavaScriptコードのASTを抽出できるようにすることはできますか? – user1335906

+0

私はまだそれほど多かったわけではありません。 'parse'関数はASTを返しますが、それほど難しいことではありません。ドキュメントはhttp://esprima.org/doc/index.htmlにあり、著者のブログ(http://ariya.ofilabs.com/)にはその使用方法の例がいくつかあります。うまくいけば助けてください。 –

関連する問題