【问题标题】:Generate and parse Python code from C# application从 C# 应用程序生成和解析 Python 代码
【发布时间】:2010-11-28 19:31:38
【问题描述】:

我需要生成更具体的 Python 代码IronPyton。我还需要能够解析代码并将其加载到AST。我刚开始研究一些工具。我与"Oslo" 一起玩,并决定它不是适合我的工具。我只是简单地看了一下Coco/R,它看起来很有希望。

有人用 Coco/R 吗? 如果你做了什么是你使用该工具的经验 你能推荐一些其他的工具吗?

【问题讨论】:

  • “奥斯陆”是什么意思。链接已损坏。
  • @IvanKochurkin "Oslo" 曾经是微软的一个项目。您可以在searchwindevelopment.techtarget.com/tip/… 找到更多信息。
  • 所以,请修复您问题中的链接 :)

标签: c# python code-generation ironpython cocor


【解决方案1】:

IronPython 实现本身包括 a parseran AST representation 的 Python 程序,它们可以用 PythonWalker 遍历。

【讨论】:

  • 这对我来说是一个很好的信息。暂时+1。让我研究一下,如果它对我有用,我会接受你的回答。
  • 这个问题很久以前就已经回答了,但我想知道:你用这种方法有什么收获吗?
  • 我是唯一一个发现 IronPython 文档不可读的人吗?
【解决方案2】:

不是我的专业领域,但您可能想试试ANTLR 4。支持生成Python 2Python 3

【讨论】:

    【解决方案3】:

    我认为你应该看看Dynamic Language Runtime。这将是 .Net 和 C#(内存中的 .Net 4)的某些更高版本的标准部分。

    我已经用它来编译和执行运行时生成的 Python 代码,但我还没有玩过所有 AST 的东西。

    【讨论】:

    • 我确实看过 DLR,这就是为什么我想生成属于 DLR 语言的 IronPython 代码。不幸的是,C# 4 并不具备动态语言的所有特性。到目前为止,您只能在 C#4 中使用动态关键字。但无论如何,这不是我的问题。
    • 您现在可以使用 IronPython 和 DLR 做任何您想做的事情。我建议您阅读我在答案中链接到的页面,因为它专门讨论了从 Python 代码生成 AST。您不需要 C# 4 即可使用 DLR。如果您使用的是 IronPython 2.0 及更高版本,那么您使用的是 DLR!
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多