如何通过用户输入扫描并将其切成C 的块

How to scan through user input and cut it into chunks in c++?

本文关键字:的块 何通过 用户 输入 扫描      更新时间:2023-10-16

我正在制作一个程序来评估条件命题(〜或and->< ->)。当用户输入命题变量真实价值(true,false)命题;该程序将通过输入并返回整个主张的真实价值。

  • for ex:如果我设置 p = true ,q = true ,r = false P或Q和R
  • 无论如何我都可以将其切入 q和r ,然后处理并将其放回结果(即 false false ),然后处理下一个位( p或 false )??。而且它必须继续切割碎屑(以正确的优先顺序),然后将它们放回原处,直到我离开的是一个是the或false

    • ,我应该用来保存用户输入(数组,字符串)???

    • 任何帮助将不胜感激!谢谢。

这样的任务通常分为两个阶段:词汇分析和句法分析。

词汇分析将输入分解为令牌的流。在您的情况下,令牌将是操作员~orand-><->,变量和值truefalse。您没有提及它们,但我想您也想在您的语言中包含括号作为令牌。您的语言很简单,您可以自己编写词汇分析仪,但是诸如Flex或Ragel之类的工具可能会帮助您。

synyactic分析是您逗弄输入的句法结构并执行所需的任何动作(在您的情况下评估介词)。句法分析比词汇分析更为复杂。您可以为此任务编写A 递归下降解析器,也可以使用解析器生成器为您编写代码。传统的工具称为野牛,但有点笨拙。我喜欢另一个称为柠檬解析器发生器的简单工具,尽管它比C 更为方向。