我们如何使用 Java 解释一般规则?

发布于 2024-12-28 12:08:08 字数 198 浏览 0 评论 0原文

假设我有一个非常基本的规则,如下所示,

if a<b
  then set a=25
else set a=-25

我需要使用我的 Java 来评估它。进行此类解析的最佳方法是什么?使用正则表达式可能非常困难并且很难维护,对吧?

有人可以建议一种方法吗?如果您需要任何进一步的信息,请告诉我。

Say I have a very basic rule like the one below

if a<b
  then set a=25
else set a=-25

I need to evaluate this using my Java. What is the best approach to do these kind of parsing? Using regular expression could be very difficult and will be very difficult to maintain right?

Can someone please suggest an approach? Please let me know if you need any further information.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贵在坚持 2025-01-04 12:08:08

如果您的语法是正则的,则可以使用正则表达式。如果不是,则需要使用更复杂的工具,例如 Lexers 和 Parsers:即 AntlrYacc/Lex/Bison

如果你对语言设计不太了解,我建议你读一本 在深入讨论该主题之前。

If your syntax is regular, you can use regular expressions. If it is not, you need to use more complicated tools such as Lexers and Parsers: i.e. Antlr or Yacc/Lex/Bison.

If you don't know much about language design, I suggest you read a book on the subject before you dive in.

夕嗳→ 2025-01-04 12:08:08

根据您可以调整规则语法的方式/程度,您可以使用 Groovy 或 JRuby;它们都非常擅长实现紧密集成的 DSL。在实现外部 DSL 之前,我会认真考虑这种方法,尽管 Antlr 使它变得非常简单。

Depending on how/how much you can tweak your rule syntax you may be able to use Groovy or JRuby; they're both quite good at implementing tightly-integrated DSLs. I'd give that approach serious consideration before implementing an external DSL, although Antlr makes it pretty easy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文