【发布时间】:2026-01-25 16:40:01
【问题描述】:
我想用 Javascript 制作一个命题演算解析器,它将详细说明输入并判断逻辑命题是否正确。 例如,我会输入
(A && B) || (B && A) => not(A)
然后我会在另一个提示中插入 A 和 B 的可能值。
我不是要别人帮我完成工作,只是我不知道从哪里开始。我想得到一些提示:我怎样才能用 Javascript 正确地表示语义,命题演算的语法?
提前致谢!
【问题讨论】:
-
你试过PEG.js吗?
-
对于任何重要的事情,您可能需要一个递归下降解析器或一个状态机(您自己的,或者您可以配置的东西)。主要提及它们,以便您知道要搜索什么。不要沉迷于寻找基于 JavaScript 的正则表达式解决方案,这会浪费大量时间。
-
我被要求制作一个标记的 lambda 演算解析器和解析器,但由于我不习惯这样的代码,我想从更简单的形式开始,比如命题演算。如果您说递归下降解析器或状态机是实现此项目的两种可能方式,我会检查一下。谢谢你们两个:)
标签: javascript calculus