Jintを使用してJSコードを解析し、関数を呼び出します。私はマルチスレッド環境を使用しているので、私はこの問題に対する応答として示されているプログラム解析手法を使用しています。https://github.com/sebastienros/jint/issues/384解析されたJintプログラムで関数を呼び出す
だから私はJint.Parser.Ast.Program
インスタンスです。 IFunctionDeclaration
を繰り返して自分の機能を見つけることができます。しかし、私は唯一の全体Program
を実行する方法を発見し
Dim parser As New Jint.Parser.JavaScriptParser
Dim program As Jint.Parser.Ast.Program = parser.Parse(code)
For Each func As Jint.Parser.IFunctionDeclaration In program.FunctionDeclarations
If func.Id.Name = myFunctionName Then
' How to call the function?
End If
Next
...実際に関数を呼び出す方法がわかりません。関数を実際にエンジンで定義するために、私はそれを行わなければならないと仮定します。しかし、それでも私のスクリプトで特定の関数を呼び出すことはできますか?
私はあなたがこれをやりたい理由を理解していません。スクリプト内で関数が定義されていれば、その関数を呼び出すだけですか?なぜこれを行うためにパーサが必要なのですか?定義されている場合はそれを呼び出すことができます。これは最適化ですか? – Tewr