#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Script de prueba para el convertidor LAD mejorado """ from lad_to_pseudocode_converter_enhanced import EnhancedLadConverter def test_enhanced_converter(): """Prueba el convertidor mejorado""" print("=== Convertidor LAD Mejorado ===") try: # Crear el convertidor converter = EnhancedLadConverter() # Parsear el archivo print("Parseando INPUT.EXP...") converter.parse_file(".example/INPUT.EXP") print(f"Redes encontradas: {len(converter.networks)}") # Mostrar detalles de las primeras redes for i, network in enumerate(converter.networks[:10]): print(f"\n--- Red {network.id} ---") print(f"Comentario: {network.comment}") print(f"Contactos: {len(network.contacts)}") print(f"Asignaciones: {len(network.assignments)}") print(f"Function Blocks: {len(network.function_blocks)}") # Mostrar detalles de asignaciones for j, assignment in enumerate(network.assignments[:3]): print(f" Asignación {j+1}:") if assignment['conditions']: conditions = [f"{'NOT ' if c.negated else ''}{c.name}" for c in assignment['conditions']] print(f" Condiciones: {' AND '.join(conditions)}") if assignment['target_var']: print(f" Variable destino: {assignment['target_var']}") if assignment['function_name']: print(f" Function Block: {assignment['function_name']}") if assignment['operator']: print(f" Operador: {assignment['operator']}") if assignment['operands']: print(f" Operandos: {assignment['operands']}") # Convertir a pseudocódigo print("\n=== Generando pseudocódigo ===") structured_code = converter.convert_to_structured() # Guardar archivo output_file = "INPUT_enhanced_pseudocode.txt" converter.save_to_file(output_file) # Mostrar las primeras líneas print("\n=== Primeras líneas del resultado ===") lines = structured_code.split('\n') for i, line in enumerate(lines[:50]): print(f"{i+1:3d}: {line}") return True except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": test_enhanced_converter()