C++ 如何使用堆栈来验证在C++;?

C++ 如何使用堆栈来验证在C++;?,c++,stack,expression,grammar,bnf,C++,Stack,Expression,Grammar,Bnf,我用一个空格分隔符将其标记为一个向量,然后将其标记为堆栈。我想使用堆栈来验证表达式或赋值是否正确 转让应采用以下形式: id=exp; 表达形式应为: id op id{op id}——任意长度,只要添加op和id对即可 括号对可用于对任何id op id组合进行分组。因此: id op(id op id)op id和id op id op(id op id)——有效表达式- 这将把带括号的中缀表达式转换为上的后缀表达式 可以计算的堆栈。如果分流失败,则表达式无效 i、 e.通过适当的检查,您

我用一个空格分隔符将其标记为一个向量,然后将其标记为堆栈。我想使用堆栈来验证表达式或赋值是否正确

转让应采用以下形式: id=exp; 表达形式应为: id op id{op id}——任意长度,只要添加op和id对即可 括号对可用于对任何id op id组合进行分组。因此: id op(id op id)op id和id op id op(id op id)——有效表达式-

这将把带括号的中缀表达式转换为上的后缀表达式 可以计算的堆栈。如果分流失败,则表达式无效
i、 e.通过适当的检查,您可以将x=3+((-)捕获为格式错误的表达式。

我不明白,要将表达式放入堆栈(通常使用后缀或前缀表示法),您已经验证了表达式,并且“(”)'消失。否则,您的'堆栈'不是执行中的堆栈,而是一个集合,用于按读取顺序记忆项目,甚至不知道每个项目是什么。