/// <summary> /// Handles the Click event of the btnCompilar control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void btnCompilar_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Convert.ToString(txtCode.Text))) { StreamReader codigo = new StreamReader(txtAbrirCaminho.Text); AnalisadorLexico analisadorLexico = new AnalisadorLexico(Convert.ToString(txtCode.Text)); analisadorLexico.realizaAnaliseLexica(codigo); foreach (string t in analisadorLexico.lstErros) { txtResult.Text = txtResult.Text + t + "\r\n\n"; } if (!(txtResult.Text == "")) { txtResult.Text = txtResult.Text + "\r\n\n"; txtResult.Text = txtResult.Text + "\r\n\n"; txtResult.Text = txtResult.Text + "============================================" + "\r\n\n"; txtResult.Text = txtResult.Text + "============= Analise Lexica ============" + "\r\n\n"; txtResult.Text = txtResult.Text + "============================================" + "\r\n\n"; txtResult.Text = txtResult.Text + "\r\n\n"; txtResult.Text = txtResult.Text + "\r\n\n"; } foreach (Token t in analisadorLexico.lstToken) { txtResult.Text = txtResult.Text + " id : " + t.id + " Tipo : " + t.tipo + "\r\n\n"; } } }
public static void Main(string[] args) { AnalisadorLexico lexo = new AnalisadorLexico("PrimeiroCerto.txt"); AnalisadorSintatico sintatico = new AnalisadorSintatico(lexo); sintatico.Prog(); sintatico.fecharArquivo(); lexo.imprimeTabelaSimbolos(); Console.WriteLine("Programa compilado !"); Console.ReadLine(); }
public AnalisadorSintatico(string caminhoArquivo) { arquivo = new StreamReader(new FileStream(caminhoArquivo, FileMode.Open)); if (File.Exists(caminhoArquivo + ".obj")) { File.WriteAllText(caminhoArquivo + ".obj", String.Empty); } arquivoObjeto = new StreamWriter(new FileStream(caminhoArquivo + ".obj", FileMode.OpenOrCreate)); lexico = new AnalisadorLexico(arquivo); semantico = new AnalisadorSemantico(); gerador = new GeradorCodigo(arquivoObjeto); }
private void button1_Click(object sender, EventArgs e) { AnalisadorLexico x = new AnalisadorLexico(); debug.Text = ""; string texto = codigo.Text; bool erro = x.Analisa(texto); debug.Text = (x.analiseLexica); if (erro) { debug.BackColor = Color.Red; } else { debug.BackColor = Color.Green; } }
static void Main(string[] args) { Console.WriteLine("Inicio\nA eentrada será lida do aquivo Entrada.txt\n"); var analisadorLexico = new AnalisadorLexico(File.ReadAllText("Entrada.txt")); analisadorLexico.Analisar(); Console.WriteLine("Analise léxica completa..."); var analisadorSintatico = new AnalisadorSintatico(analisadorLexico.Tokens); analisadorSintatico.Analisar(); Console.WriteLine("Analise sintática completa..."); Console.WriteLine("Analise semantica completa..."); Console.WriteLine($"\nTabela de Simbolos:\n"); foreach (var simboloTs in analisadorSintatico.TabelaDeSimbolos.Simbolos.Values) { Console.WriteLine( $"Cadeia : {simboloTs.Cadeia} |Escopo: {simboloTs.Escopo} | Linha: {simboloTs.Linha} | Tipo: {simboloTs.Tipo}"); if (simboloTs.Parametros != null) { Console.Write(" |Parametros: "); foreach (var parametro in simboloTs.Parametros) { Console.Write($" Cadea: {parametro.Cadeia} Tipo: {parametro.Tipo}"); } Console.Write("\n"); } } Console.WriteLine("Código HIpo"); foreach (var item in analisadorSintatico.GeradorCodigoHipo.AreaDeCodigo) { Console.WriteLine(item); } Console.WriteLine("\nAcabou"); }
public AnalisadorSintatico(AnalisadorLexico lexo) { this.lexo = lexo; token = lexo.proximoToken(); Console.WriteLine("\t\t [DEBUG]" + token.ToString()); }