private void 词法分析器AToolStripMenuItem_Click(object sender, EventArgs e) { Scanner scan = new Scanner(); txtMsg.Text = ""; Scanner.LineNo = 1; txtToken.Text = "------------------token表信息...-----------------" + "\r\n\r\n" + "行" + "\t" + "单词" + "\t\t" + "种别码" + "\r\n"; string str = txtContent.Text + '\0'; txtMsg.Text = "---------------词法分析信息...---------------" + "\r\n\r\n"; scan.scanner(str); scan.write_token(); scan.write_sym(); try { FileStream fs = new FileStream("token.txt", FileMode.Open); StreamReader sr = new StreamReader(fs); txtToken.Text += sr.ReadToEnd(); sr.Close(); } catch (Exception) { throw; } txtMsg.Text += "词法分析结束 " + "- " + scan.errors + " error(s)" + "\r\n"; 显示符号表信息ToolStripMenuItem.Checked = false; if (scan.errorList.Count != 0) { foreach (var i in scan.errorList) { txtMsg.Text += i.ToString() + "\r\n"; } } msgError = txtMsg.Text; if (scan.errorList.Count == 0) { Parser paresr = new Parser(); paresr.parser(scan.list); txtMsg.Text = ""; for (int i = 0; i < paresr.error.Count; i++) { txtMsg.Text += paresr.error[i] + "\r\n"; } txtMsg.Text += "\r\n" + "语法分析结束 " + "- " + paresr.error.Count + " error(s)" + "\r\n"; 语法分析器ToolStripMenuItem.Enabled = true; toolStripButton1.Enabled = true; txtToken.Text = "------------------中间代码...-----------------" + "\r\n\r\n" + "NO" + "\t" + "OP" + "\t\t" + "arg1" + "\t\t" + "arg2" + "\t\t" + "result" + "\r\n"; } }