首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求域特定表达式的搜索方法

求域特定表达式的搜索方法
EN

Stack Overflow用户
提问于 2019-01-22 11:53:40
回答 1查看 43关注 0票数 0

我正在java项目的上下文中开发一个工具来评估一个特定于自定义域的类似规则的表达式,如

min-5 avg datalist > Number

使用单个令牌表示以下内容:

  • min-5 :可选的最小值(或最大值,在这种情况下为最大值-5)出现在下一项
  • avg :一个可选的聚合函数,它运行在以下令牌数据列表上(也可以是和或任何类似的东西)
  • datalist :在整个表达式的计算开始之前可用的数据列表(类型:整数/双),可以通过前面的聚合函数将其还原为单个值。
  • 运算符:条件运算符<或>或=
  • 编号:条件运算符的值

注:

  • 事件和聚合的可选数量不能同时发生,这是没有意义的。
  • 可以有多个与和/或链接的上述表达式。
  • 这些表达式是外部输入,而不是预定义的。

这个表达式的计算值应该输出一个布尔值。

由于我对表达式评估/解析非常陌生,所以我正在寻找一种优雅的方法来解决这个问题,可能是使用java框架/工具。

到目前为止我尝试过的是:

  • 手工解析,结果不太好
  • 尝试使用Janino表达式计算器,但我不知道如何以编程方式处理这个问题

我正在寻找一种优雅的方法来解决这个问题,我很感谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 12:03:33

您试图做的是一种DSL (领域特定语言),解决问题的优雅方法是为yuor特定语言创建一个语法,以帮助您解析函数。看看JavaCC或Antlr。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54307761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档