重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关C++怎么实现词法分析器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都网站制作、网站建设,成都网站设计,一元广告,成都做网站选成都创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
具体内容如下
/*************Written By Zzg************/ /*******Date : 11,25,2017********/ #include#include #include using namespace std; string KEYWORD[15]={"if","else","void","return","while","then","for","do", //关键字 "int","char","double","float","case","cin","cout"}; char SEPARATER[8]={';',',','{','}','[',']','(',')'}; //分隔符 char OPERATOR[8]={'+','-','*','/','>','<','=','!'}; //运算符 char FILTER[4]={' ','\t','\r','\n'}; //过滤符 const int IDENTIFIER=100; //标识符值 const int CONSTANT=101; //常数值 const int FILTER_VALUE=102; //过滤字符值 /**判断是否为关键字**/ bool IsKeyword(string word){ for(int i=0;i<15;i++){ if(KEYWORD[i]==word){ return true; } } return false; } /**判断是否为分隔符**/ bool IsSeparater(char ch){ for(int i=0;i<8;i++){ if(SEPARATER[i]==ch){ return true; } } return false; } /**判断是否为运算符**/ bool IsOperator(char ch){ for(int i=0;i<8;i++){ if(OPERATOR[i]==ch){ return true; } } return false; } /**判断是否为过滤符**/ bool IsFilter(char ch){ for(int i=0;i<4;i++){ if(FILTER[i]==ch){ return true; } } return false; } /**判断是否为大写字母**/ bool IsUpLetter(char ch){ if(ch>='A' && ch<='Z') return true; return false; } /**判断是否为小写字母**/ bool IsLowLetter(char ch){ if(ch>='a' && ch<='z') return true; return false; } /**判断是否为数字**/ bool IsDigit(char ch){ if(ch>='0' && ch<='9') return true; return false; } /**返回每个字的值**/ template int value(T *a,int n,T str){ for(int i=0;i ': case '<': case '=': case '!': { arr += ch; printf("%3d ",value(OPERATOR,8,*arr.data())); cout< >inFile; if((fpin=fopen(inFile,"r"))!=NULL) break; else{ cout<<"文件名错误!"< 关于“C++怎么实现词法分析器”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
网站标题:C++怎么实现词法分析器
网页路径:http://cqcxhl.cn/article/gpdgcj.html