c0文法编译课程设计

上传者: infinity23 | 上传时间: 2020-04-04 00:05:38 | 文件大小: 20KB | 文件类型: ZIP
使用c语言完成的简单c0文法编译器的实现,文法为: <加法运算符> ::= +|- 1<乘法运算符>  ::= *|/ 1<关系运算符>  ::=  <||>=|!=|== 1<字母>   ::= _|a|...|z|A|...|Z 1<数字>   ::= 0|<非零数字> 1<非零数字>  ::= 1|...|9 <字符>    ::=   '<加法运算符>'|'<乘法运算符>'|'<字母>'|'<数字>' //字符不能为空 <字符串>   ::=  "{十进制编码为32,33,35-126的ASCII字符}" //字符串可以为空 <程序>    ::= [<常量说明>][<变量说明>]{<有返回值函数定义>|<无返回值函数定义>}<主函数> 1<常量说明> ::=  const<常量定义>;{ const<常量定义>;} 1<常量定义>   ::=   int<标识符>=<整数>{,<标识符>=<整数>}                             | char<标识符>=<字符>{,<标识符>=<字符>} 1<无符号整数>  ::= <非零数字>{<数字>} //无符号整数不能有0 1<整数>        ::= [+|-]<无符号整数>|0 //无符号整数属于整数 1<标识符>    ::=  <字母>{<字母>|<数字>} <声明头部>   ::=  int<标识符> |char<标识符> <变量说明>  ::= <变量定义>;{<变量定义>;} <变量定义>  ::= <类型标识符>(<标识符>|<标识符>‘[’<无符号整数>‘]’){,<标识符>|<标识符>‘[’<无符号整数>‘]’ } <常量>   ::=  <整数>|<字符> <类型标识符>      ::=  int | char <有返回值函数定义>  ::=  <声明头部>‘(’<参数>‘)’ ‘{’<复合语句>‘}’ <无返回值函数定义>  ::= void<标识符>‘(’<参数>‘)’‘{’<复合语句>‘}’ 1<复合语句>   ::=  [<常量说明>][<变量说明>]<语句列> 1<参数>    ::= <参数表> 1<参数表>    ::=  <类型标识符><标识符>{,<类型标识符><标识符>}|<空> 1<主函数>    ::= void main‘(’‘)’ ‘{’<复合语句>‘}’ 1<表达式>    ::= [+|-]<项>{<加法运算符><项>} 1<项>     ::= <因子>{<乘法运算符><因子>} 1<因子>    ::= <标识符>|<标识符>‘[’<表达式>‘]’|<整数>|<字符>|<有返回值函数调用语句>|‘(’<表达式>‘)’   <有返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’        <语句>    ::= <条件语句>|<循环语句>| ‘{’<语句列>‘}’|<有返回值函数调用语句>;                        | <无返回值函数调用语句>;|<赋值语句>;|<读语句>;|<写语句>;|<空>;|<情况语句>|<返回语句>; <赋值语句>   ::=  <标识符>=<表达式>|<标识符>‘[’<表达式>‘]’=<表达式> <条件语句>  ::=  if ‘(’<条件>‘)’<语句>[else<语句>] <条件>    ::=  <表达式><关系运算符><表达式>|<表达式> //表达式为0条件为假,否则为真 <循环语句>   ::=  for‘(’<标识符>=<表达式>;<条件>;<标识符>=<标识符>(+|-)<步长>‘)’<语句> <步长>    ::=  <非零数字>{<数字>} <情况语句>  ::=  switch ‘(’<表达式>‘)’ ‘{’<情况表><缺省>‘}’ <情况表>   ::=  <情况子语句>{<情况子语句>} <情况子语句>  ::=  case<常量>:<语句> <缺省>   ::=  default : <语句> <无返回值函数调用语句> ::= <标识符>‘(’<值参数表>‘)’ <值参数表>   ::= <表达式>{,<表达式>}|<空> <语句列>   ::= {<语句>}//出现多次或0次ET <读语句>    ::=  scanf ‘(’<标识符>{,<标识符>}‘)’ <写语句>    ::= printf ‘(’ <字符串>,<表达式> ‘)’| printf ‘(’<字符串> ‘)’| printf ‘(’<表达式>‘)’ <返回语句>   ::=  return[‘(’<表达式>‘)’]

文件下载

资源详情

[{"title":"( 2 个子文件 20KB ) c0文法编译课程设计","children":[{"title":"error.h <span style='color:#111;'> 2.84KB </span>","children":null,"spread":false},{"title":"main.c <span style='color:#111;'> 91.24KB </span>","children":null,"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明