1 b 4 2 a 5 2 b 6

private void button6_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "DFA文件|*.dfa"; openFileDialog1.Title = "选择DFA文件"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string[] lines = File.ReadAllLines(openFileDialog1.FileName); string startState = lines[0].Split(':').Last().Trim(); string[] endStates = lines[1].Split(':').Last().Split(';').Select(x => x.Trim()).ToArray(); int maxState = int.Parse(lines[2].Split(':').Last().Trim()); string[] symbols = lines[3].Split(':').Last().Split(';').Select(x => x.Trim()).ToArray(); Dictionary<string, Dictionary<string, string>> transitions = new Dictionary<string, Dictionary<string, string>>(); for (int i = 4; i < lines.Length; i++) { string[] parts = lines[i].Split('\t'); string fromState = parts[0].Trim(); string symbol = parts[1].Trim(); string toState = parts[2].Trim(); if (!transitions.ContainsKey(fromState)) { transitions[fromState] = new Dictionary<string, string>(); } transitions[fromState][symbol] = toState; } listView2.Items.Clear(); foreach (string state in transitions.Keys) { foreach (string symbol in transitions[state].Keys) { string toState = transitions[state][symbol]; ListViewItem item = new ListViewItem(new[] { state, symbol, toState }); listView2.Items.Add(item); } } }

private void button6_Clickobject sender EventArgs e上述函数用VS软件C#语言实现读入DFA文件的功能且该DFA文件的前四行中的数据第一行是开始符第二行是终结符第三行是最大状态数第四行是符号集并把分析结果显示在listView2容器中该容器以经被分为起始状态、接受符号、到达状态三列。文件格式大致如下开始符0; 终结符3;4;5;6; 最大状态数6

原文地址: http://www.cveoy.top/t/topic/cgG2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录