public void CompilacionGarGarIncorrectaConTexto() { Compilador compilador = new Compilador(); ResultadoCompilacion res = compilador.Compilar(PROGRAMA_ERRONEO); Assert.IsFalse(res.CompilacionGarGarCorrecta); }
public void CompilacionGarGarVacia() { Compilador compilador = new Compilador(); ResultadoCompilacion res = compilador.Compilar(""); Assert.IsFalse(res.CompilacionGarGarCorrecta); }
public void CompilacionGarGarCorrectaBasica() { Compilador compilador = new Compilador(true, "basica"); ResultadoCompilacion res = compilador.Compilar(PROGRAMA_BASICO); Assert.IsTrue(res.CompilacionGarGarCorrecta, ObtenerErrores(res)); Assert.IsTrue(res.ResultadoCompPascal.CompilacionPascalCorrecta); }
public void CompilacionCorrectaDosSeguidas() { Compilador compilador = new Compilador(true, "test"); string resourceName = "UnitTestCompiladorGarGar.Programas.test.gar"; string programa = Utilidades.FileManager.LeerArchivoEnteroDeAssembly(Assembly.GetExecutingAssembly(), resourceName); ResultadoCompilacion res = compilador.Compilar(programa); Assert.IsTrue(res.CompilacionGarGarCorrecta, ObtenerErrores(res)); Assert.IsTrue(res.ResultadoCompPascal.CompilacionPascalCorrecta); ResultadoCompilacion res2 = compilador.Compilar(programa); Assert.IsTrue(res2.CompilacionGarGarCorrecta, ObtenerErrores(res)); Assert.IsTrue(res2.ResultadoCompPascal.CompilacionPascalCorrecta); }
private static UC CriaUC(List <string> codigo) { var compilado = Compilador.Compilar(codigo); UC comp = new UC(new Logger(), compilado.CodigoXBinario); foreach (var item in compilado.Codigo) { comp.Memoria.AddCodigo(item); } return(comp); }
public void CompilacionErrorLexicoPrimerCaracter() { Compilador compilador = new Compilador(); string resourceName = "UnitTestCompiladorGarGar.Programas.testErrorLexico.gar"; string programa = Utilidades.FileManager.LeerArchivoEnteroDeAssembly(Assembly.GetExecutingAssembly(), resourceName); ResultadoCompilacion res = compilador.Compilar(programa); Assert.IsTrue(res.ListaErrores[0].Mensaje.CodigoGlobal == 43); }
private void PruebaSintactica(int errorPretendido, string pruebaBis = "") { Compilador compilador = new Compilador(); string resourceName = string.Format("UnitTestCompiladorGarGar.Programas.ErroresSintacticos.error{0}{1}.gar", errorPretendido, pruebaBis); string programa = Utilidades.FileManager.LeerArchivoEnteroDeAssembly(Assembly.GetExecutingAssembly(), resourceName); ResultadoCompilacion res = compilador.Compilar(programa); Assert.IsFalse(res.CompilacionGarGarCorrecta, string.Format("La compilacion da correcta y esperaba error {0}", errorPretendido)); Assert.IsTrue(res.ListaErrores[0].Mensaje.CodigoGlobal == errorPretendido, string.Format("Error {0} y esperaba {1}. Error: {2}", res.ListaErrores[0].Mensaje.CodigoGlobal, errorPretendido, res.ListaErrores[0].Mensaje.Descripcion)); }
public void CompilacionMenorTresSegundos() { Compilador compilador = new Compilador("validacionesSemanticasCorrectas"); string resourceName = "UnitTestCompiladorGarGar.Programas.validacionesSemanticasCorrectas.gar"; string programa = Utilidades.FileManager.LeerArchivoEnteroDeAssembly(Assembly.GetExecutingAssembly(), resourceName); ResultadoCompilacion res = compilador.Compilar(programa); Assert.IsTrue(res.CompilacionGarGarCorrecta, ObtenerErrores(res)); Assert.IsTrue(res.ResultadoCompPascal.CompilacionPascalCorrecta); Assert.IsTrue(res.TiempoCompilacionTotal < 3); }
private static void ValidaCódigo(List <string> l, List <string> codigo) { var c = Compilador.Compilar(codigo); var compilado = c.Codigo; if (compilado.Count != l.Count) { throw new Exception(); } for (int i = 0; i < compilado.Count; i++) { if (compilado[i] != l[i]) { throw new Exception(); } } }
public IActionResult CreateMachine([FromBody] List <string> code) { var compilado = Compilador.Compilar(code); if (compilado.Erros.Count > 0) { return(BadRequest(compilado.Erros)); } var newUc = CriaUC(code, compilado); var virtualUc = new MachineData(); virtualUc.codigo = code; virtualUc.Key = Guid.NewGuid(); virtualUc.uc = newUc; _data.Add(virtualUc); return(Ok(PcToResult(virtualUc))); }
/// <summary> /// The main entry point for the application. /// </summary> private static void Main(string[] args) { try { //Compilador comp = new Compilador(); //Application.Run(comp); var options = new Options(); var result = CommandLine.Parser.Default.ParseArguments <Options>(args); if (!result.Errors.Any()) { if (File.Exists(result.Value.InputFile)) { using (StreamReader reader = new StreamReader(result.Value.InputFile)) { string textoCompilar = reader.ReadToEnd(); //Compilador compilador = new Compilador(false, Globales.ConstantesGlobales.PathEjecucionAplicacion, Globales.ConstantesGlobales.PathEjecucionAplicacion, result.Value.ExeFile); Compilador compilador = new Compilador(false, Path.GetTempPath(), Path.GetTempPath(), result.Value.ExeFile); ResultadoCompilacion res = compilador.Compilar(textoCompilar); if (res.CompilacionGarGarCorrecta && res.ResultadoCompPascal != null && res.ResultadoCompPascal.CompilacionPascalCorrecta) { Console.WriteLine("Compilacion exitosa"); } else { Console.WriteLine("Error de compilacion"); foreach (var error in res.ListaErrores) { Console.WriteLine(string.Format("<{0},{1}> {2}", error.Fila, error.Columna, error.Mensaje.Descripcion)); } } } } } //if (args != null) //{ // if (args.Length > 0) // { // List<string> argumentos = new List<string>(args); // } // else // { // Console.WriteLine("Coloque el parametro -? para ayuda"); // } //} //else //{ // Console.WriteLine("Coloque el parametro -? para ayuda"); //} } catch (Exception ex) { Console.WriteLine("Error fatal en el compilador."); Console.WriteLine(ex.Message); } }
private void invocarCompilador(object path) { Compilador.Compilar(path, checkConsola.Checked); EnabledButton(true); }