Leer dinámicamente COBOL redefine con C #
Estoy creando un programa C # que podrá leer dinámicamente un cuaderno de IBM HOST escrito en COBOL y generar una tabla SQL a partir de él. Una vez que se genera la tabla, puedo cargar un archivo en mi programa y leerá, se convertirá desde IMB-37 e insertará el archivo en esa tabla sql. Hasta ahora puedo manejar casi cualquier cosa, aunque me encuentro con algunos problemas con REDEFINES.
Por ejemplo:
10 SOME-FIELD PIC 9(3) COMP-3. SCRRB205
4117 10 SOME-OTHER-FIELD REDEFINES 3041-17
4117 SOME-FIELD PIC X(2). 3041-17
Entiendo que la redefinición toma el lugar del campo superior en este caso, aunque lo que no entiendo es cómo el compilador sabe si debe usar la redefinición en ella o no. Supongo que en este caso será porque el primero es un número donde el segundo es un personaje, aunque en el ejemplo a continuación todos usan caracteres.
05 STREET-ADDRESS.
10 ADDRESS-LINE-1 PIC X(20).
10 ADDRESS-LINE-2 PIC X(20).
05 PO-BOX REDEFINES STREET-ADDRESS PIC X(40).
He intentado ignorar las redefiniciones, ya que siempre ocupará la misma cantidad de espacio, pero en el caso de que el campo original esté empaquetado y el redefinido no sea necesario, necesito saber cuándo desempaquetar el campo.
¡Cualquier ayuda con esto sería increíble chicos!