首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初学者语法写作指南

初学者语法写作指南
EN

Stack Overflow用户
提问于 2012-02-01 01:58:59
回答 2查看 1.9K关注 0票数 3

我正在工作的应用程序从文件导入中输入大量数据,并相应地更新数据库列。我需要想出一个自定义规则引擎,它将基于验证处理所有输入值,并相应地执行数据转换。E.x。

我们应用程序中的一个字段是Product Name。因此,我们需要实现的规则之一是,如果来自文件的输入值为小写,则将Product name从小写转换为大写。同样,还有许多文本/数学转换需要完成。由于这些原因,我们需要提出自定义规则引擎,在其中我们为每个属性定义规则,解析它们,然后应用规则。

我确实知道ANTLRJava的解析器生成器之一。我正在寻求关于以下问题的建议:

1>有关解析器生成器的工作原理和实现语法的最佳实践的一般信息。

2>既然我需要完全设计这个规则引擎,有没有人能给我推荐一个我可以参考的示例规则引擎?从UI到数据库设计。我将GWT用于UI,Java用于核心逻辑,oracle用于数据库

3>有没有其他的解析器生成器

4>虽然我确实想遵循定义自己的语法并使用解析器生成器来构建此规则引擎的道路,但是否有其他我应该考虑的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-01 02:05:54

您可能希望考虑只使用JbossRules (以前的Drools),它是一个基于Java的规则引擎。或者,脚本引擎可能是实现规则的另一种方式(例如Apache Rhino (Java中的Javascript))。

在这种情况下编写自己的规则似乎有点过头,但如果最终用户要创建规则/脚本,它可能会让您提供更好的安全保证。

编辑以解决评论中的问题:

我建议使用现有的规则引擎( JbossRules/Drools),而不是编写自己的解析器和语法(用于规则组件)。看一下这里的例子:Drools

对于规则可能需要使用的专用逻辑(db访问或计算库),您应该编写规则使用的单个Java API (这样规则就不会深入访问您的其他代码,因为当您重构时,这可能会导致错误)。无论您使用哪种规则引擎(您自己的或现有的),此建议都适用。

我假设您已经解决了数据输入文件的数据格式问题,并且您只是在寻找规则格式和规则解析的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2012-02-01 14:42:58

有一个解析器生成器JavaCC,还有一个用于评估规则的groovy。你是否要使用脚本引擎取决于语法。如果规则不能用javascript、java、python等来表达,而你又想用一种新的语言来编写它们,那么你就必须使用解析器生成器。但是你总是可以在你创建的方法中做任何你想做的事情,然后从规则中调用它们。规则将由脚本引擎评估。

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

https://stackoverflow.com/questions/9084544

复制
相关文章

相似问题

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