c#语法和语义分析器

时间:2013-11-07 21:37:28

标签: c# parsing terminal

我正在开发一个“视频游戏”来为我的大学教授编程。

这个视频游戏是基于级别的,其中每个级别都是关于编程主题(变量,数据结构等),并且给定该主题,然后该级别将是拼图或2d平台游戏,例如在条件级别中它将是一个2d平台游戏,用户必须通过gui控制台引入指令,让角色检查是否有阻挡方式或类似的东西。

我需要的是一些代码,它在该控制台中给出输入,它将检查语法和语义错误。输入将基于一种选择的语言(我正在考虑C#),但没有什么是100%肯定的。 (我的意思是我正在考虑教授C#,但我可以教任何其他语言)

现在我正在构建控制台,但这对我来说非常困难,因为我不是一名高级程序员。

我一直在互联网上搜索一些解析器或东西,只检查这两件事,例如返回布尔值,但我只发现编译器编译器之类的东西 GOLD或ANTLR,我认为这不是项目规模所必需的。

我怎样才能开发出这样的解析器,还是可以指向一个?

编辑:也许我想要完成的一个很好的例子就像是codecademy的控制台或者tryhaskell.org控制台

2 个答案:

答案 0 :(得分:1)

您可能对微软的Roslyn project感兴趣。它允许您为C#编写交互式命令行。

答案 1 :(得分:0)

所以用户输入看起来像if (IsPlatformAhead("2 meters")) Jump();对吗?我认为你应该使用比仅仅解析器更严重的东西,因为用户可以编写这样的有效查询:

var platform = IsPlatformAhead("2 meters");
if (platform)
  Jump();

您不仅需要解析,还需要执行查询。您可以使用MS(Roslyn)中的某些内容,也可以使用Mono(开源)。