#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Ejemplo de uso del convertidor LAD a pseudocódigo estructurado """ from lad_to_pseudocode_converter import LadToStructuredConverter def convertir_input_exp(): """Ejemplo de conversión del archivo INPUT.EXP""" # Crear instancia del convertidor converter = LadToStructuredConverter() try: # Cargar y parsear el archivo LAD print("Parseando archivo INPUT.EXP...") converter.parse_file(".example/INPUT.EXP") # Convertir a código estructurado print("Convirtiendo a pseudocódigo estructurado...") structured_code = converter.convert_to_structured() # Guardar resultado output_file = "INPUT_pseudocode.txt" converter.save_to_file(output_file) # Mostrar estadísticas print(f"\n=== Estadísticas de conversión ===") print(f"Redes procesadas: {len(converter.networks)}") print(f"Archivo de salida: {output_file}") # Mostrar las primeras líneas como ejemplo print(f"\n=== Primeras líneas del resultado ===") lines = structured_code.split('\n') for i, line in enumerate(lines[:30]): print(f"{i+1:3d}: {line}") if len(lines) > 30: print("...") print(f"(Total de {len(lines)} líneas)") return True except Exception as e: print(f"Error durante la conversión: {e}") return False def mostrar_detalles_red(converter, network_id): """Muestra los detalles de una red específica""" if network_id <= len(converter.networks): network = converter.networks[network_id - 1] print(f"\n=== Detalles de Red {network_id} ===") print(f"Comentario: {network.comment}") print(f"Elementos: {len(network.elements)}") for i, element in enumerate(network.elements): print(f" {i+1}. {element.element_type.value}: {element.name}") if element.expression: print(f" Expresión: {element.expression}") if element.parameters: print(f" Parámetros: {element.parameters}") if __name__ == "__main__": print("=== Convertidor LAD a Pseudocódigo Estructurado ===") print("Procesando archivo INPUT.EXP de TwinCAT...") if convertir_input_exp(): print("\n✓ Conversión completada exitosamente!") else: print("\n✗ Error en la conversión")