一 需求分析
程序获取的文法为难度系数为3的for文法
<加法运算符> ::= +|-
<乘法运算符> ::= *|/
<关系运算符> ::= <|<=|>|>=|!=|==
<字母> ::= _|a|...|z|A|...|Z
<数字> ::= 0|<非零数字>
<非零数字> ::=1|...|9
<字符> ::= ‘<加法运算符>’|’<乘法运算符>’|’<字母>’|’<数字>’
<字符串> ::= “{十进制编码为32,33,35-126的ASCII字符}”
<程序> ::= [<常量说明>][<变量说明>]{<有返回值函数定义>|<无返回值函数定义>}<主函数>
<常量说明> ::= const<常量定义>;{const<常量定义>;}
<常量定义> ::= int<标识符>=<整数>{,<标识符>=<整数>}| char<标识符>=<字符>{,<标识符>=<字符>}
<无符号整数> ::= <非零数字>{<数字>}
<整数> ::= [+|-]<无符号整数>|0
<标识符> ::= <字母>{<字母>|<数字>}
<声明头部> ::= int<标识符>|char<标识符>
<变量说明> ::= <变量定义>;{<变量定义>;}
<变量定义> ::= <类型标识符>(<标识符>|<标识符>‘[’<无符号整数>‘]’){,(<标识符>|<标识符>‘[’<无符号整数>‘]’) }
<常量> ::= <整数>|<字符>
<类型标识符> ::= int | char
<有返回值函数定义> ::= <声明头部>‘(’<参数>‘)’ ‘{’<复合语句>‘}’
<无返回值函数定义> ::= void<标识符>