private void bPGG_Click(object sender, EventArgs e) { try { var gen = ParserGenerator.GetGenerator(rtbPGNT.Text.Split(','), rtbPGT.Lines.Select(x => x.Trim()).Select(x => new Tuple <string, string> (x.Split(',')[0], x.Substring(x.Split(',')[0].Length + 1).Trim())).ToArray(), rtbPGPR.Lines.Select(x => x.Trim()).ToArray(), rtbPGC.Lines.Select(x => x.Trim()).ToArray()); rtbPGS.Clear(); gen.GlobalPrinter.Clear(); gen.PrintProductionRules(); if (rbSLR.Checked == true) { gen.Generate(); } else if (rbLALR.Checked == true) { gen.GenerateLALR(); } else { gen.GenerateLR1(); } gen.PrintStates(); gen.PrintTable(); rtbPGS.AppendText(gen.GlobalPrinter.ToString()); srparser = gen.CreateShiftReduceParserInstance(); } catch (Exception ex) { rtbPGS.AppendText("Generate Error!\r\n" + ex.Message + "\r\n" + ex.StackTrace); } }