说明文档
一、 C0 语言
1、 C0 语法的扩充 BNF 表示
<加法运算符>::= +|-
<乘法运算符>::= * |/
<关系运算符>::= <|<=|>|>=|!=|==
<字符>::= a|...|z|A|...|Z
<数字> ::= 0|<非零数字>
<非零数字>::= 1|...|9
<字符串>::= "{<合法字符> }"
//
字符串中可以出现所有合法的可打印字符集中的字符
<程序> ::= [<常量说明部分>][<变量说明部分>]
{<有返回值函数定义部分>}{<无返回值函数定义部分>}<主函数>
<常量说明部分>::= const<常量定义>{const,<常量定义>};
<常量定义>::= int<标识符>=<整数>{,<标识符>=<整数>}
| | char<标识符>=<字符>{,<标识符>=<字符>}
<整数>::= [+|-]<非零数字>{<数字>}|0
<标识符>::= <字符>{<字符>|<数字>}
<声明头部>::= int <标识符>
<变量说明部分>::=<声明头部>{,<标识符>};
<子函数定义部分>::=(<声明头部>|void <标识符>)<参数><复合语句>
<复合语句>::= ‘{’[<常量说明部分>][<变量说明部分>]<语句序列>‘}’
<参数> ::= ‘(’ <参数表>‘)’
<参数表>::= int<标识符>{,int<标识符>} | 空
<主函数> ::= (void |int) main <参数><复合语句>
<表达式> ::= [+|-]<项>{<加法运算符><项>}
<项> ::= <因子>{<乘法运算符><因子>}
<因子>::=<标识符>|‘(’ <表达式>‘)’|<整数>|<子函数调用语句>
<语句> ::= <条件语句>|<循环语句>|
‘{’<语句序列>‘}’|<子函数调用语句
>;|<赋值语句>; | <返回语句>;|<读语句>;|<写语句>;|<空>
<赋值语句>::= <标识符>=<表达式>
<条件语句>::= if ‘(’ <条件>‘)’<语句>[else<语句>]
<循环语句>::= do<语句>while ‘(’ <条件>‘)’
<有返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’
<无返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’
<值参数表>::= <表达式>{,<表达式>}|<空>
<语句序列>::= <语句>{<语句>}
<读语句> ::= scanf‘(’<标识符>‘)’
<写语句>::= printf‘(’[<字符串>,][<表达式 >]‘)’
<返回语句>::= return [ ‘(’<表达式>‘)’]