static void Main(string[] args) { if (args.Length <= 0) { Console.WriteLine("Os Argumentos são Scanner [Arquivo] \n ex: Scanner file"); //caso nao especifique o arquivo a ser lido } else { string filePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\" + args[0] + ".luc"; string outputPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\output.luc"; string token = string.Empty; try { using (StreamReader sr = new StreamReader(filePath)) //sr vai ler o arquivo no caminho definido acima que é onde está o arquivo de entrada { if (new FileInfo(filePath).Length != 0) { using (StreamWriter fw = new StreamWriter(outputPath)) { while (!sr.EndOfStream) { lexema lexemas = lexema.indef; lexemas = CheckChar(sr, ref token); //aqui chama a função que realiza a comparação da leitura com os lexemas fw.WriteLine($"{lexemas.ToString()},{token}\n"); //como será escrito no arquivo de saída "LEXEMA,TOKEN" } Console.WriteLine("Output criado."); } } else { Console.WriteLine("O Arquivo está vazio."); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } //Console.WriteLine("caminho do arq: " + outputPath); if (AnalisadorSintatico.AnalyzeOutput(outputPath)) { Console.WriteLine("Análise Sintática finalizada com sucesso, não foram encontrados erros."); Console.WriteLine("Iniciando Análise Semântica..."); AnalisadorSemantico.analisador_semantico(outputPath); } else { Console.WriteLine("Analise Sintática com erro!"); } } }
static void Main(string[] args) { if (args.Length <= 0) { Console.WriteLine("Os Argumentos são Scanner [Arquivo] \n ex: Scanner file"); } else { string filePath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\" + args[0] + ".luc"; string outputPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\output.luc"; string token = string.Empty; try { using (StreamReader sr = new StreamReader(filePath)) { if (new FileInfo(filePath).Length != 0) { using (StreamWriter fw = new StreamWriter(outputPath)) { while (!sr.EndOfStream) { lexema mlex = lexema.undef; mlex = CheckChar(sr, ref token); fw.WriteLine($"{token},{mlex.ToString()}\n"); } Console.WriteLine("Output criado."); } } else { Console.WriteLine("O Arquivo está vazio."); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } if (SyntacticAnalyzer.AnalyzeOutput()) { Console.WriteLine("Analise Sintatica finalizada com sucesso, nao foram encontrados erros."); } } }