g t*_*g t 10 language-agnostic validation arithmetic-expressions
我正在寻找一种定义文本表达式的通用方法,它允许验证值.
例如,我有一个值应该只设置为1,2,3,10,11或12.它的约束可以定义为: (value >= 1 && value <= 3) || (value >= 10 && value <= 12)
或者另一个可以是1,3,5,7,9等的值......会有像value % 2 == 1或那样的约束IsOdd(value).
(为了帮助用户更正无效值,我想显示约束 - 所以描述IsOdd性更好.)
这些约束将在客户端(用户输入之后)和服务器端进行评估.因此,多平台解决方案将是理想的(特别是Win C#/ Linux C++).
是否存在允许评估或解析类似简单表达式的现有语言/项目?
如果没有,我可以从哪里开始创建自己的?
我意识到这个问题有点模糊,因为我不完全确定我追求的是什么.搜索结果没有结果,因此即使某些术语作为起点也会有所帮助.然后我可以相应地更新/标记问题.
如果您最终开始使用自己的语言,我会尝试尽可能长时间地保持实现独立。寻找合适的编程语言(例如C)的形式表达式语法,并根据需要添加特殊关键字/函数。一旦您对语言有了正式的定义,就可以使用您最喜欢的解析器生成器来实现解析器。
这样,即使您的解析器无法移植到某个平台,您至少也有一个正式的标准来启动单独的解析器实现。