【问题标题】:JavaScript Parser and Analyzer in C# .NET 4.5C# .NET 4.5 中的 JavaScript 解析器和分析器
【发布时间】:2012-12-30 14:59:09
【问题描述】:

不确定标题是否正确解释。

无论如何,我正在构建一个 .NET WPF 应用程序,它应该通过 JavaScript 并识别诸如

之类的问题
  1. 如果定义的变量在最后被取消
  2. 如果正在使用 try/catch/finally 块。
  3. 函数调用

我在这里解决了所有围绕 c/c++ 的问题。现在我后悔把我的编译器类装了。

我想知道如何在 C# 中验证第 1-3 点。有没有图书馆可以做到这一点?

【问题讨论】:

  • 您的帖子中有问题吗?
  • 编辑了问题。例如。我想在 C# 中检查 JS 函数中定义的变量是否被无效。
  • 我建议你看看V8,Google 的 JavaScript 引擎。 There is a similar SO question (and answer) on how to use V8 from within C#/.NET。使用这个引擎,你可以编译你的脚本并让它运行,可能会看到编译器警告/错误。
  • 顺便说一句:你为​​什么认为“函数调用”是个问题?实际上,我认为函数调用是一件非常好的事情!
  • 感谢您的链接。我认为它不会对问题 1 和 2 发出任何警告。而且,到 3 时,我打算编写外部库函数调用。

标签: c# javascript .net .net-4.5


【解决方案1】:

看看 IronJS 我知道他们有一个非常好的 .Net JavaScript 库

IronJS

【讨论】:

    【解决方案2】:

    您正在寻找的是用 C# 编写的用于 Javascript 的 abstract syntax tree 解析器。

    我知道有几个选择:

    Microsoft 的 Ajax Minifier 库带有自己的 AST 解析器(用于缩小/优化 Javascript 文件)。你可以在Codeplex找到源代码。

    Esprima.net 是另一种选择。它是流行的 Javascript 库 Esprima 的一个端口。

    Esprima 的好处在于它以通用格式(由 Mozilla here 定义)输出 AST,该格式在多个解析器中使用,使得移植用于遍历树等的实用程序非常容易,因为它们都使用相同的底层数据结构。

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 2011-05-07
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多