资源描述:
《词法分析器(c#实现)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/**********************************************************************************************************************写在最前面*词法分析前先将源码预处理,去掉多余的空格和换行以及注释*单词与单词之间最好用空格隔开,否则将被识别为未知符号******************************************************************************
2、****************************************/usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Collections;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;namespace词法分析{publicpartia
3、lclassForm1:Form{privatestaticstring[]保留字={"bool","break","case","char","do","double","else","false","float","for","if","int","long","main","new","null","private","protected","public","static","true","try","typeof","unit","void","while","return","short","si
4、zeof","switch"};privatestaticstring[]运算符={"*","/","%","+","-","<<",">>","<",">","<=",">=","==","!=","&","^","
5、","&&","
6、
7、","?:","+=","-=","*=","/=","%=","&=","
8、=","^=","<<=",">>=","="};privatestaticstring[]界符={",",";",".","'","(",")",":","[","]","{","}","/"}
9、;privatestaticstring[]标识符;privatestaticstring[]常数;privatestaticstring[]未知符号;privateArrayListtemp=newArrayList();publicForm1(){InitializeComponent();}publicintSearch_Location(stringstr,string[]a)//查找字符编码{for(inti=0;i10、urn-1;}publicintInsertId(stringstrr,refstring[]a)//标识符插入标识符表返回位置{temp.Clear();if(a==null)temp.Add(strr);else{for(inti=0;i11、returna.Length-1;}privatestringPretreatment()//预处理{strings1=textBox1.Text;stringstr1=null;//去除换行和//注释string[]str=textBox1.Lines;for(inti=0;i12、+){str1+=str[i]+"";}//去除跳格,回车if(str1.Contains("/v")){str1=str1.Replace("/v","");}if(str1.Contains("/r")){str1=str1.Replace("/r","");}if(str1.Contains("/n"))str1=str1.Replace("/n","");if(str1.Contains("