【问题标题】:Javascript - How to parse propositional calculus [closed]Javascript - 如何解析命题演算[关闭]
【发布时间】:2026-01-25 16:40:01
【问题描述】:

我想用 Javascript 制作一个命题演算解析器,它将详细说明输入并判断逻辑命题是否正确。 例如,我会输入

(A && B) || (B && A) => not(A)

然后我会在另一个提示中插入 A 和 B 的可能值。

我不是要别人帮我完成工作,只是我不知道从哪里开始。我想得到一些提示:我怎样才能用 Javascript 正确地表示语义,命题演算的语法?

提前致谢!

【问题讨论】:

  • 你试过PEG.js吗?
  • 对于任何重要的事情,您可能需要一个递归下降解析器或一个状态机(您自己的,或者您可以配置的东西)。主要提及它们,以便您知道要搜索什么。不要沉迷于寻找基于 JavaScript 的正则表达式解决方案,这会浪费大量时间。
  • 我被要求制作一个标记的 lambda 演算解析器和解析器,但由于我不习惯这样的代码,我想从更简单的形式开始,比如命题演算。如果您说递归下降解析器或状态机是实现此项目的两种可能方式,我会检查一下。谢谢你们两个:)

标签: javascript calculus


【解决方案1】:

你可以尝试使用antlr v3的javascript目标。

这是一个包含您要查找的语法的问题:ANTLR Propositional Logic Evaluator

还有一个您可能会觉得有帮助的问题: ANTLR JavaScript Target

【讨论】: