Stingray - Schema-Based File Reader Blog
Simple handling of numerous data file formats, even COBOL EBCDIC.
Brought to you by:
slott56
The revised version of COBOL_schemata
looks like this:
def COBOL_schemata( source, replacing=None, lexer_class=Lexer ): lexer= lexer_class( replacing ) parser= RecordFactory() dde_list= list( parser.makeRecord( lexer.scan(source) ) ) schema_list= list( make_schema( dde ) for dde in dde_list ) return dde_list, schema_list
This gives us an API that looks like this:
dde_list, schema_list = stingray.cobol.loader.COBOL_schemata( source, lexer_class=cobol.loader.Lexer_Long_Lines )
We can include the lexer without having to rewrite the function explicitly.
We can then pick apart the parsed results.
self.record_1, self.record_2 = dde_list self.schema_1, self.schema_2 = schema_list