我正在制作一个程序来评估条件命题(〜或and->< ->)。当用户输入命题变量和真实价值(true,false)和命题;该程序将通过输入并返回整个主张的真实价值。
- for ex:如果我设置 p = true ,q = true ,r = false : P或Q和R 。
-
无论如何我都可以将其切入 q和r ,然后处理并将其放回结果(即 false false ),然后处理下一个位( p或 false )??。而且它必须继续切割碎屑(以正确的优先顺序),然后将它们放回原处,直到我离开的是一个是the或false 。
-
,我应该用来保存用户输入(数组,字符串)???
-
任何帮助将不胜感激!谢谢。
-
这样的任务通常分为两个阶段:词汇分析和句法分析。
词汇分析将输入分解为令牌的流。在您的情况下,令牌将是操作员~
,or
,and
,->
,<->
,变量和值true
,false
。您没有提及它们,但我想您也想在您的语言中包含括号作为令牌。您的语言很简单,您可以自己编写词汇分析仪,但是诸如Flex或Ragel之类的工具可能会帮助您。
synyactic分析是您逗弄输入的句法结构并执行所需的任何动作(在您的情况下评估介词)。句法分析比词汇分析更为复杂。您可以为此任务编写A 递归下降解析器,也可以使用解析器生成器为您编写代码。传统的工具称为野牛,但有点笨拙。我喜欢另一个称为柠檬解析器发生器的简单工具,尽管它比C 更为方向。