词法分析器(c++语言描述)

上传人:ji****n 文档编号:45705470 上传时间:2018-06-18 格式:DOC 页数:6 大小:51.50KB
返回 下载 相关 举报
词法分析器(c++语言描述)_第1页
第1页 / 共6页
词法分析器(c++语言描述)_第2页
第2页 / 共6页
词法分析器(c++语言描述)_第3页
第3页 / 共6页
词法分析器(c++语言描述)_第4页
第4页 / 共6页
词法分析器(c++语言描述)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《词法分析器(c++语言描述)》由会员分享,可在线阅读,更多相关《词法分析器(c++语言描述)(6页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include using namespace std;char buf1000;/用于保存文件中的文本的缓冲区 string Get_text();/从文件中输入 bool Is_key(string str);/判断否为关键字 int Clear_space(string str,int n);/用来删除连续的空白和换行符 string Get_words(string str,int n,int/获得一个单词符号,从位置i开始查找。并且有一个 引用参数j,用来返回这个单词最后一个字符在str的位置。 bool Is_operatio

2、n(string str,int n);/判断字符是否为一个运算符 void Output_text(vector v);/将词法分析结果输出 bool Is_boundary(string str,int n);/判断字符是否为一个分界符 vector word_analyse(vector vec);/对一个字符串数组进行词法分析/*主函数*/ int main() int start=0; int end=0; string single_string;/保存分析出来的单个词汇 vector one_word_list;/保存分析出来的单个词汇的总表 vector analyse_res

3、ult;/最终结果以二元组的形式保存在 vector容器中cout, ; n+-*/=“#“);/分隔符表m=str.find_first_of(separator_list,n);/find_first_of返回匹配被查找字符串中某个字符的第 一次出现位置if(m=-1)return “;if(n!=m)m-;return str.substr(n,m-n+1);/返回字符串的子集,位置为i后面的j-i+1个字符 /判断i当前所指的字符是否为一个分界符,是的话返回真,反之假 bool Is_boundary(string str,int n) int nn; char boundary_li

4、st7=,;,(,),#;for (nn=0;nn;for (nn=0;nn v) ofstream outfile(“Output.txt“,ios:out);if (!outfile)cerr“ temp(key_list,key_list+19); for(int n=0;n型容器 vector word_analyse(vector vec) vector temp;for(int i=0;i pp(4,jk);temp.push_back(pp);continue;if(veci=“|veci=“= ,= ,!=符号string jk=veci;jk.append(vec+i,0,1

5、);pair pp(4,jk);temp.push_back(pp);continue;if(veci=“jk.append(vec+i,0,1);pair pp(4,jk);temp.push_back(pp);continue; if(Is_key(veci) pair pp(1,veci);temp.push_back(pp);else if(veci0=0)pair pp(3,veci);temp.push_back(pp); else if(Is_operation(veci,0)pair pp(4,veci);temp.push_back(pp);else if(Is_bounda

6、ry(veci,0)pair pp(5,veci);temp.push_back(pp);elsepair pp(2,veci);temp.push_back(pp);return temp; 词法分析器文档 1:表示关键字,支持的包括: “char“,“short“,“int“,“long“,“float“,“double“,“for“,“while“,“do“,“break“,“continue“,“switch“,“case“, “return“,“if“,“cout“,“cin“,“endl“,“return“共十九个关键字2:未知字符串3:数字4:操作符,支持的包括: +,-,=,=,!=,+,*,/,=,5:分界符,支持的包括: , ; ( ) #

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号