/// <summary> /// Lanza la información de depuración de las instrucciones /// </summary> internal void RaiseDebug(LibTokenizer.Interpreter.Program program) { if (DebugInfo != null) { RaiseDebug("Depuración del programa" + program.ID); RaiseDebugInner(program); } }
/// <summary> /// Rutina interna para lanzar la depuración de instrucciones de programas y funciones recursivamente /// </summary> private void RaiseDebugInner(LibTokenizer.Interpreter.Program program) { if (program.Sentences.Count == 0) { RaiseDebug($"No se ha encontrado ninguna instrucción en el programa {program.ID}"); } else { // Depuración de funciones foreach (LibTokenizer.Interpreter.Program function in program.Functions) { RaiseDebug($"Depuración de la función {function.ID}"); RaiseDebugInner(function); } // Depuración de instrucciones foreach (LibTokenizer.Interpreter.Instructions.InstructionBase instruction in program.Sentences) { if (instruction != null) { RaiseDebug(instruction.GetDebugString()); } } } }