|
|
根据如下PASCAL语言的文法,自行设计一个相应的编译程序,它可对所给的该语言程序进行语法分析,并能输出相应的四元式序列和符号表
[php]<程序>-> ROGRAM<标识符>;<分程序>
<分程序>-><变量说明>BEGIN<语句表>END
<变量说明>->VAR<变量说明表>;
<变量说明表>-><变量表>:<类型>|<变量表>:<类型>;<变量说明表>
<类型>->INTEGER|REAL
<变量表>-><变量>|<变量>,<变量表>
<语句表>-><语句>|<语句>;<语句表>
<语句>-><赋值语句>|<条件语句>|<WHILE语句>|<复合语句>
<赋值语句>-><变量>:=<算术表达式>
<条件语句>->IF<关系表达式>THEN<语句>ELSE<语句>
<WHILE语句>->WHILE<关系表达式>DO<语句>
<复合语句>->BEGIN<语句表>END
<算术表达式>-><项>|<算术表达式>+<项>|<算术表达式>-<项>
<项>-><因式>|<项>*<因式>|<项>/<因式>
<因式>-><变量>|<常数>|(<算术表达式>)
<关系表达式>-><算术表达式><关系符><算术表达式>
<变量>-><标识符>
<标识符>-><标识符><字母>|<标识符><数字>|<字母>
<常数>-><整数>|<浮点数>
<整数>-><数字>|<数字><整数>
<浮点数>->.<整数>|<整数>.<整数>
<关系符>-><|<=|=|>|>=|<>
<字母>->A|B|C|...|X|Y|Z
<数字>->0|1|2|...|9
[/php] |
|