Definisci il parser del modello

Mainframe Connector supporta due versioni dell'interprete di file di copia:

  • Parser di book di origine:il parser di book di origine è la versione più recente del parser. L'analizzatore di libri di copie nativo implementa un parser basato su ANTLR4 e supporta i libri di copie COBOL. Per ulteriori informazioni sulle funzionalità supportate dall'analizzatore di libri di copie nativo e sulle limitazioni del suo utilizzo, consulta Analizzatore di libri di copie nativo.
  • Parser di file di copia legacy: il parser di file di copia legacy è una versione precedente del parser che supporta funzionalità non COBOL. Se utilizzi un file di lavoro basato su linguaggio specifico del dominio (DSL), il parser precedente potrebbe essere più adatto in quanto il parser dei file di lavoro nativi potrebbe causare errori. Per maggiori informazioni sulle funzionalità supportate dall'analizzatore sintattico dei libri mastri precedenti e sulle limitazioni del suo utilizzo, consulta Analizzatore sintattico dei libri mastri precedenti.

Puoi definire il parser da utilizzare in base al tuo copybook utilizzando il parser_type=legacy|copybook flag. Il valore predefinito è auto, ovvero la modalità di rilevamento automatico. La modalità di rilevamento automatico dà la priorità all'utilizzo dell'analizzatore di file di copia nativo, che è adatto per l'analisi di file di copia basati su COBOL. Tuttavia, se utilizzi un file di copia non basato su COBOL con il formato precedente, il flag parser_type=legacy offre compatibilità con le versioni precedenti e ti aiuta a utilizzare lo strumento di analisi dei file di copia Legacy.

La tabella seguente definisce il comportamento di Mainframe Connector in base al flag.

Bandiera Azione
auto Mainframe Connector rileva automaticamente il parser ed esegue tre tentativi di analisi nel seguente ordine:
  • Analizza utilizzando l'analizzatore nativo e l'area dei commenti espliciti nelle colonne 1-6. Se l'analisi ha esito positivo, Mainframe Connector registra lo scanner utilizzato e restituisce il risultato. Se l'analisi non va a buon fine, Mainframe Connector prova il parser successivo.
  • Analizza utilizzando l'analizzatore nativo senza l'area dei commenti. Se l'analisi sintattica è riuscita, Mainframe Connector registra l'analizzatore utilizzato e restituisce il risultato. Se l'analisi non va a buon fine, Mainframe Connector provato il parser successivo.
  • Analizza i dati utilizzando il parser legacy. Se l'analisi ha esito positivo, Mainframe Connector registra l'analizzatore utilizzato e restituisce il risultato. Se l'analisi non va a buon fine, Mainframe Connector mostra un errore.
legacy Per l'analisi viene utilizzato il parser legacy. Si aspetta un file di tipo simile a un file COBOL, ad esempio un file basato su un linguaggio specifico per il dominio (DSL). Quando utilizzi il flag legacy, Mainframe Connector mostra un avviso che indica che il parser legacy verrà ritirato. Dopo aver utilizzato il parser legacy per l'analisi, il connettore mainframe confronta il risultato del parser legacy con quello del parser nativo eseguendo due tentativi di analisi nell'ordine seguente:
  • Analizza il copybook utilizzando il parser nativo che si aspetta un'area di commenti esplicita nelle colonne 1-6. Se l'analisi è riuscita, Mainframe Connector confronta il risultato analizzato con quello del parser precedente. Se non sono uguali, viene visualizzato un avviso. Se l'analisi non va a buon fine, Mainframe Connector prova il parser successivo.
  • Analizza il copybook utilizzando il parser nativo senza area di commento nelle colonne 1-6. Se l'analisi ha esito positivo, Mainframe Connector confronta il risultato analizzato con quello dell'analizzatore precedente. Se non è uguale, viene visualizzato un avviso. Se l'analisi non va a buon fine, Mainframe Connector registra l'eccezione.
copybook Per l'analisi viene utilizzato l'analizzatore di file di copia nativo. Come input, prevede i copybook di tipo Native, inclusa un'area di commenti esplicita nelle colonne 1-6. Se la convalida non va a buon fine, Mainframe Connector mostra un errore.