PL0文法源代码
时间: 2023-08-02 21:09:29 浏览: 44
以下是 PL0 语言的文法源代码:
```
<程序> ::= <分程序>.
<分程序> ::= [<常量说明部分>][<变量说明部分>][<过程说明部分>]<语句>.
<常量说明部分> ::= const <常量定义>{,<常量定义>}.
<常量定义> ::= <标识符>=<无符号整数>.
<无符号整数> ::= <数字>{<数字>}.
<变量说明部分> ::= var <标识符>{,<标识符>}.
<标识符> ::= <字母>{<字母>|<数字>}.
<过程说明部分> ::= <过程首部><分程序>;{<过程说明部分>}.
<过程首部> ::= procedure <标识符>;.
<语句> ::= <赋值语句>|<条件语句>|<当型循环语句>|<过程调用语句>|<复合语句>|<读语句>|<写语句>|<重复语句>.
<赋值语句> ::= <标识符>:=<表达式>.
<条件语句> ::= if <条件> then <语句>[else <语句>].
<条件> ::= <表达式><关系运算符><表达式>|odd <表达式>.
<关系运算符> ::= =|#|<|<=|>|>=.
<表达式> ::= [+|-]<项>{<加法运算符><项>}.
<加法运算符> ::= +|-.
<项> ::= <因子>{<乘法运算符><因子>}.
<乘法运算符> ::= *|/.
<因子> ::= <标识符>|<无符号整数>|'('<表达式>')'.
<过程调用语句> ::= call <标识符>.
<复合语句> ::= begin <语句>{;<语句>} end.
<读语句> ::= read '('<标识符>{,<标识符>}')'.
<写语句> ::= write '('<表达式>{,<表达式>}')'.
<重复语句> ::= repeat <语句>{;<语句>} until <条件>.
```
以上是 PL0 语言的经典文法,仅供参考。