一 需求分析
本工程实现了对PL/0源代码的词法分析,语法分析,语义分析及生成Pcode代码,还对Pcode的代码进行了解释,使其能在Java虚拟机上运行。
功能要求如下:
-
输入:符合PL/0文法的源程序
-
输出:P-Code
-
错误信息。
-
P-Code指令集。
-
语法分析部分要求统一使用递归下降子程序法实现。
PL/0文法的EBNF所示:
-
<程序> ::=<分程序>.
-
<分程序> ::=[<常量说明部分>][变量说明部分>][<过程说明部分>]<语句>
-
<常量说明部分>::= const<常量定义>{,<常量定义>};
-
<常量定义> ::=<标识符>=<无符号整数>
-
<无符号整数>::= <数字>{<数字>}
-
<标识符> ::=<字母>{<字母>|<数字>}
-
<变量说明部分>::=var<标识符>{,<标识符>};
-
<过程说明部分>::= <过程首部><分程序>;{<过程说明部分>}
-
<过程首部> ::=procedure<标识符>;
-
<语句> ::=<赋值语句>|<条件语句>|<当型循