我正在开发一个“视频游戏”来为我的大学教授编程。
这个视频游戏是基于级别的,其中每个级别都是关于编程主题(变量,数据结构等),并且给定该主题,然后该级别将是拼图或2d平台游戏,例如在条件级别中它将是一个2d平台游戏,用户必须通过gui控制台引入指令,让角色检查是否有阻挡方式或类似的东西。
我需要的是一些代码,它在该控制台中给出输入,它将检查语法和语义错误。输入将基于一种选择的语言(我正在考虑C#),但没有什么是100%肯定的。 (我的意思是我正在考虑教授C#,但我可以教任何其他语言)
现在我正在构建控制台,但这对我来说非常困难,因为我不是一名高级程序员。
我一直在互联网上搜索一些解析器或东西,只检查这两件事,例如返回布尔值,但我只发现编译器编译器之类的东西 GOLD或ANTLR,我认为这不是项目规模所必需的。
我怎样才能开发出这样的解析器,还是可以指向一个?
编辑:也许我想要完成的一个很好的例子就像是codecademy的控制台或者tryhaskell.org控制台答案 0 :(得分:1)
您可能对微软的Roslyn project感兴趣。它允许您为C#编写交互式命令行。
答案 1 :(得分:0)
所以用户输入看起来像if (IsPlatformAhead("2 meters")) Jump();
对吗?我认为你应该使用比仅仅解析器更严重的东西,因为用户可以编写这样的有效查询:
var platform = IsPlatformAhead("2 meters");
if (platform)
Jump();
您不仅需要解析,还需要执行查询。您可以使用MS(Roslyn)中的某些内容,也可以使用Mono(开源)。