词法分析器的实现

词法分析器的实现

ID:38685255

大小:31.00 KB

页数:6页

时间:2019-06-17

词法分析器的实现_第1页
词法分析器的实现_第2页
词法分析器的实现_第3页
词法分析器的实现_第4页
词法分析器的实现_第5页
资源描述:

《词法分析器的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、我自己写的个词法分析程序可以完成一个非常非常基本的C语言词法分析.自己鼓励下自己:-)    #include  #include  #include  #include  #include  #include  #include  usingnamespacestd;    //用来存储目标文件名  stringfile_name;    //提取文本文件中的信息。  stringGet

2、Text();    //获得一个单词符号,从位置i开始查找。  //并且有一个引用参数j,用来返回这个单词最后一个字符在str的位置。  stringGetWord(stringstr,inti,int&j);    //这个函数用来除去字符串中连续的空格和换行  //第一个参数为目标字符串,第二个参数为开始位置  //返回值为连续的空格和换行后的第一个有效字符在字符串的位置  intDeleteNull(stringstr,inti);    //判断i当前所指的字符是否为一个分界符,是的话返回真,反之假  b

3、oolIsBoundary(stringstr,inti);    //判断i当前所指的字符是否为一个运算符,是的话返回真,反之假  boolIsOperation(stringstr,inti);    //此函数将一个pair数组输出到一个文件中  voidOutFile(vector>v);    //此函数接受一个字符串数组,对它进行词法分析,返回一个pair型数组  vector>analyst(vectorvec);  

4、  //此函数判断传递的参数是否为关键字,是的话,返回真,反之返回假  boolIsKey(stringstr);    intmain()  {  cout<<"###########################";  cout<<"###copyright:Giftedbird###";  cout<<"###########################";  stringcom1="";  stringcom2="";  stringfileline=GetText();  intbe

5、gin=0,end=0;  vectorarray;  do  {  begin=DeleteNull(fileline,begin);  stringnowString;  nowString=GetWord(fileline,begin,end);  if(end==-1)  break;  if(nowString.compare(com1)&&nowString.compare(com2))  array.push_back(nowString);  begin=end+1;  }while

6、(true);  vector>mid_result;  mid_result=analyst(array);  OutFile(mid_result);  cout<<"**********************************************************************";  cout<<"***程序已完成词法分析,分析结果已经存储在文件"<

7、*******************************************************";  system("pause");  return0;  }    //提取文本文件中的信息  stringGetText()  {  stringfile_name1;  cout<<"请输入源文件名(包括路径和后缀名):";  cin>>file_name1;  ifstreaminfile(file_name1.c_str(),ios::in);  if(!infile)  {  cerr<

8、<"哦!无法打开文件"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。