我想用伪代码编写一个程序,该程序将识别C/C++源文件中“#”或“%”的不正确使用。
听起来很简单,但是我不确定如何在“伪代码”中编写/描述该符号出现的位置,例如是否在变量名之前/之后。

我应该使用类似的东西:

  If "#" after var_a
       then "Error!"
    elseif before ";"
        .... and so on

还是应该在“符号”之后使用#_ASCII_code is _...之类的东西。

我真的不知道如何用伪代码描述这些特殊情况。

我不得不提到,我在互联网上读到了有关伪代码的信息。(我已经使用过搜索按钮)

先感谢您。

最佳答案

您的方法无效,因为它是too simple。解决方案是一个称为“parsing”的多步骤过程,直到最终得到AST为止:

  • 首先,您需要将源文件中的字符流转换为 token (b = a ++-> ID ASSIGN ID INCREMENT)。
  • 然后,您需要一个LL parser将它们转换为更高级别的规则。整个源文件的规则通常称为AST-Abstract Syntax Tree

  • 现在,该树允许您编写伪代码:
    For all AST nodes with the text representation "#"
        if the previous sibling is a variable
            ...
        else if the next sibling is ";"
            ...
    

    10-06 02:07