我正在创造一个软件(C#编写的,将是一个windows的应用程序)和我遇到了这个问题

我已经有了一套变量,并且我需要允许用户定义范围广泛的数学功能上的这些变量。

但我的用户不一定有任何现有知识有关的程序。

选项我认为是:

  • 建立某种形式的GUI于定义的数学"功能"。但是,这是非常限制性的。
  • 实现一个非常简单的嵌入式语言,将提供灵活性,同时保持相对容易理解。我看着Lua,但问题是,你非常需要的现有知识,在方案编制。我考虑更多的东西可读(有些类似于SQL),例如"分配3X;"

其他的想法是值得欢迎的。

我基本上在寻找更好的方式去这里,在假定我的用户没有任何知识的程序。

然而,需要注意的是,这不是主要的功能的软件,所以我假设,如果一个用户希望的/需要来使用该特性,他将需要时间来看看的手册,为几分钟,并学习如何做到这一点,只要它不是太复杂。

谢谢,马勒基:)

有帮助吗?

解决方案

什么你想要的是一个 域特定的语言.我看你已经试过Lua并没有找到可接受的--我将假设,最先建立脚本语言出。

根据您的预期功能的复杂性,我建议你给了一枪,在实施一个小小的 递归下降的分析器 所以,你可以 到底 指定的语言。这种方式可以实现的东西,如:

assign 3 to X
show sin(X * 5)

如果这是有点超出你愿意这样做,你可以得到一些分析援助从图书馆等 讽刺的;这会让你专注于使用抽象语法的树,而不是玩切分/各处对于一些时间。

如果你想,你甚至可以看看 逃离, ,其中将分析和评估一些非常复杂的表达权利的大门。

其他提示

这些代码是马丽娟parser如果您想使用自己的语言

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top