private void lexicAnalizerToolStripMenuItem_Click(object sender, EventArgs e) { int index = tabControl.SelectedIndex; FileHandlerForm fileHandler = FileHandlerHash[index]; Lexic.File = fileHandler.GetTextLines(); List <Token> list = Lexic.ListToken; if (list != null) { new LexicAnalizerForm(tabControl.TabPages[index].Text, list).Show(); } }
private void syntaxAnalyzerToolStripMenuItem_Click(object sender, EventArgs e) { int index = tabControl.SelectedIndex; FileHandlerForm fileHandler = FileHandlerHash[index]; Lexic.File = fileHandler.GetTextLines(); if ((Lexic.File != null) && (Lexic.File.Length > 0)) { if (radioA.Checked) { syntaxAnalizerType = SyntaxAnalizerType.ASCENDENT; } else if (radioRD.Checked) { syntaxAnalizerType = SyntaxAnalizerType.RECURSIVE_DESCENDENT; } else if (radioNRD.Checked) { syntaxAnalizerType = SyntaxAnalizerType.NON_RECURSIVE_DESCENDENT; } //Chama um analisador sintático do tipo setado, por default o tipo é Descendente Recursivo Syntax = new SyntaxAnalizer(Lexic, syntaxAnalizerType); string feedback = ""; syntaxAnalyzeSuccess = Syntax.Analize(ref feedback); string msg = ""; string title = ""; if (syntaxAnalyzeSuccess) { msg = "Sucesso na Análise Sintática!"; title = "Sucesso"; } else { msg = "Erro na Análise Sintática, feedback: \r\n" + feedback; title = "Erro"; } MessageBox.Show(msg, title); } }
private void buildToolStripMenuItem_Click(object sender, EventArgs e) { syntaxAnalyzerToolStripMenuItem_Click(sender, e); //Só manda compilar se der sucesso na análise sintática if (syntaxAnalyzeSuccess) { int index = tabControl.SelectedIndex; FileHandlerForm fileHandler = FileHandlerHash[index]; string[] file = fileHandler.GetTextLines(); if (file != null) { CodeGenerator generator = new CodeGenerator(file, syntaxAnalizerType); string[] code = generator.GenerateCode(); new GeneratedCodeForm(code).Show(); } } }
private void runToolStripMenuItem_Click(object sender, EventArgs e) { syntaxAnalyzerToolStripMenuItem_Click(sender, e); //Só manda compilar se der sucesso na análise sintática if (syntaxAnalyzeSuccess) { int index = tabControl.SelectedIndex; FileHandlerForm fileHandler = FileHandlerHash[index]; string[] file = fileHandler.GetTextLines(); if (file != null) { CodeGenerator generator = new CodeGenerator(file, syntaxAnalizerType); VirtualMachine virtualMachine = new VirtualMachine(generator.CodeByteStream()); string[] output = virtualMachine.Result(); new GeneratedCodeForm(output).Show(); } } }