类似于词法分析器

来源:互联网 发布:淘宝的头像怎么改 编辑:程序博客网 时间:2024/05/09 09:37

C# code
private void button1_Click(object sender, EventArgs e) { List<string> olist = new List<string>(new string[] { ">=","<=","++","+=","-=","=="});//组合符号 List<char> list = new List<char>(new char[] {' ',',',';','{','}','(',')','+','-','=','>','<' });//单符号 string txt = System.Text.RegularExpressions.Regex.Replace(textBox1.Text.Trim(), @"\s", " "); string temp = ""; for (int i=0;i<txt.Length;i++) { if (i < txt.Length - 1) { if (olist.Contains(txt[i].ToString() + txt[i + 1].ToString())) { if (temp.Length > 0) { listBox1.Items.Add(temp); temp = ""; } listBox1.Items.Add(txt[i].ToString() + txt[i + 1].ToString()); i++; continue; } } if(list.Contains(txt[i])) { if (temp.Length > 0) { listBox1.Items.Add(temp); temp = ""; } if (txt[i] != ' ') listBox1.Items.Add(txt[i].ToString()); continue; } temp += txt[i].ToString(); } }

处理代码
测试代码:
C/C++ code

int a,b;

main()

{

if(a>b)

a+b=10;

else if(a==b)

a-=b;

else

a=b;

}


结果:

int
a
,
b
;main
(
){if
(
a
>
b
)a
+
b
=
10
;else
if
(
a
==
b
)a
-=
b
;elsea
=
b
;}
:正确