2011-11-05 74 views
8

首先,我需要一种编程语言来在代码和我的应用程序环境之间进行交互,这就是我的目标。我写了一些类似Interpreters的东西,它们只知道ifvoidfunction,变量及其范围,当然还会调用内置函数,这些函数都可以完美工作。但是我现在停留在某些部分,并意识到我无法继续进行简单的文本解析,并且有许多事情我不能做。用C#创建编程语言

因此,对于这一点,我搜索关于这个话题,我Creating programming language using C#。这很好,但我有两个问题。

  1. 我无法理解这一点。
  2. 它生成控制台代码,但我想在winapps中使用它们。

对于短,是否有任何人知道我怎样才能使我自己的语言没有通过的课程像词法分析,思考......

感谢。

+8

“_For总之,就是有谁知道我怎么才能做出自己的语言,而不需要通过词法,反思等课程......“......嗯,不。您需要了解如何创建自己真正独特的语言的基础知识。你需要做什么?请记住,我们有DLR,允许您将脚本语言嵌入到应用程序中,这对您而言是否足够? – driis

+5

这是一个学习任务吗?或者你是否真的想**做点什么。如果是后者,你可以在c#中使用很多脚本语言 - “铁杆”(铁蟒,铁红宝石等),boo,f#,JavaScript引擎;大概lua,等等...... –

+0

这不是学习任务,我需要这个为我的引擎!我做了一个很好的2D级别编辑器,我想用代码与它进行交互。 DLR?嗯,我想我看到它,但从来不知道它的名字。哦! DLR我忘了那是什么,是的,但我从未试图嵌入。我应该尝试一下。 – MahanGM

回答

2

创建自己的语言是可能的,但非常具有挑战性。没有像词法分析器这样的事情,你做得不好。

创建你自己的语言也迫使你的客户,了解另一种语言,就没有现存的第三方代码或库这个假定的语言。

另一种方法是嵌入现有的语言并通过使您的应用程序的功能。 Python是嵌入的一个非常普遍的选择,但还有很多其他选项。我强烈建议,为了这个任务,你考虑嵌入一种现有的语言,而不是发明自己的语言。

+0

这是为什么downvoted?对, –

+0

是的,没错。感谢您的回复。 – MahanGM

4

我不确定我是否真的了解你的问题。

这是否是您的程序的扩展?用C#编写的库函数集合?

或者一个完全独立的语言,你正在写在C#中的解释? (这是我猜的)

如果是后者,在过去的好时光,我会指出你在莱克斯/ Yacc的(GIYF)。

现在,我只能说ANTLR。退房Five minute introduction to ANTLR 3ANTLR v3 C# Code generator and Runtime library

只是检查出IDE的屏幕截图此页面

enter image description here

enter image description here

+0

谢谢。看起来真好!我现在就试一试。 – MahanGM