How to resolve these python copybook parser errors

518 Views Asked by At

I have just tried the copybook parser from this site on a windows laptop with Python 3.7. The error messages are:

Traceback (most recent call last):
  File "test3.py", line 3, in <module>
    root = copybook.parse_file(filename)
  File "C:\Users\jyuan\AppData\Roaming\Python\Python37\site-packages\copybook\copybook.py", line 10, in parse_file
    result:FieldGroup = stmt.parseFile(filename,parseAll=True)
  File "C:\Users\jyuan\AppData\Roaming\Python\Python37\site-packages\pyparsing.py", line 2585, in parseFile
    raise exc
  File "C:\Users\jyuan\AppData\Roaming\Python\Python37\site-packages\pyparsing.py", line 4975, in parseImpl
    raise ParseException(instring, loc, self.errmsg, self)
pyparsing.ParseException: No match found for Combine:({{{{LineStart "      "} W:( *)} [<SP><TAB><CR><LF>]...} "01"}), found '3'  (at char 0), (line:1, col:1)

My code has only a few lines:

    import copybook
    filename = 'test1.TXT'
    root = copybook.parse_file(filename)
    print('\n --- Finished. ---')

My copybook content is this:

      ******************* DDS COPYLIB GENERATION ******************
      * Segment name              : AMSAM32
      **************************************************************
           05 AM32-ACCT-DISPUTE-INFO.
              10 AM32-SEGMENT-LENGTH                  PIC S9(4) COMP.
              10 AM32-DISPUTE-SEGMENT-KEY.
                 15 AM32-DATE-DISPUTE-ENTRY           PIC S9(7) COMP-3.
                 15 AM32-TIME-DISPUTE-ENTRY           PIC S9(7) COMP-3.
              10 AM32-DISPUTE-SEGMENT-INFO.
                 15 AM32-DISPUTE-CASE-TRACKING-NUM    PIC 9(6).
                 15 AM32-DISPUTE-TYPE                 PIC X(3).
                 15 AM32-FCHG-BYP-IND                 PIC X(1).
                    88 AM32-FCHG-BYP-YES                VALUE 'Y'.
                    88 AM32-FCHG-BYP-NO                 VALUE 'N'.
                    88 AM32-FCHG-BYP-DEBIT              VALUE 'D'.
                 15 FILLER                            PIC X(2).
                 15 AM32-DISPUTE-PEND-REASON-CODE     PIC X(2).
                 15 AM32-DISPUTE-OPERATOR             PIC X(6).
                 15 AM32-OPER-LAST-WORKED             PIC X(6).
                 15 AM32-ACCOUNT-NUMBER               PIC X(19).
                 15 AM32-REFERENCE-NUMBER             PIC X(23).
                 15 AM32-TRANSACTION-DESCRIPTION      PIC X(41).
                 15 AM32-MERCHANT-DESCRIPTION REDEFINES
                     AM32-TRANSACTION-DESCRIPTION.
                    20 AM32-MERCHANT-DBA-NAME         PIC X(25).
                    20 AM32-MERCHANT-DBA-CITY         PIC X(13).
                    20 AM32-MERCHANT-DBA-STATE        PIC X(3).
                 15 AM32-MERCHANT-DBA-COUNTRY         PIC X(3).
                 15 AM32-CREDIT-ISSUED                PIC X(1).
                    88 AM32-CREDIT-ISSUED-YES           VALUE 'Y'.
                    88 AM32-CREDIT-ISSUED-NO            VALUE 'N'.
                 15 AM32-DEBIT-CREDIT-FLAG            PIC X(1).
                    88 AM32-DEBIT-ITEM                  VALUE 'D'.
                    88 AM32-CREDIT-ITEM                 VALUE 'C'.
                 15 AM32-RESOLVE-STATUS               PIC X(1).
                    88 AM32-DISPUTE-NOT-RESOLVED        VALUE SPACE.
                    88 AM32-RESOLVED-CUST-FAVOR         VALUE 'C'.
                    88 AM32-RESOLVED-ISSUER-FAVOR       VALUE 'I'.
                 15 AM32-RESOLVE-ACTIONS              PIC X(4).
                 15 AM32-DECISION-BY-OPERATOR         PIC X(6).
                 15 AM32-CORRESP-ID                   PIC X(6).
                 15 AM32-ACTION-CODE                  PIC X(2).
                 15 AM32-RESULT-CODE                  PIC X(2).
                 15 AM32-TRNS-ACCT-FUNC               PIC X(3).
                 15 AM32-DISP-ENTIRE-BALANCE-FLAG     PIC X(1).
                    88 AM32-DISP-ENTIRE-BALANCE-YES     VALUE 'Y'.
                 15 AM32-PS2000-TRAN-ID               PIC X(15).
                 15 AM32-BANKNET-REF-NUMBER REDEFINES
                     AM32-PS2000-TRAN-ID              PIC X(9).
                 15 FILLER                            PIC X(10).
                 15 AM32-MERCHANT-CATEGORY-CODE       PIC 9(4).
                 15 AM32-TRANSACTION-CODE             PIC 9(4).
                 15 AM32-TRANSACTION-CATEGORY         PIC 9(4).
                 15 AM32-TRAN-MARK-UP-AMT             PIC S9(07)V9(2)
                     COMP-3.
                 15 AM32-ACCT-CNCY                    PIC X(3).
                 15 AM32-DISPUTE-TEXT                 PIC X(30).
                 15 AM32-NETWORK-SOURCE               PIC X(1).
                 15 AM32-PVSNL-CR-GL-ACCT-NUM         PIC S9(5) COMP-3.
                 15 AM32-BKDATE-EFFECT-DATE           PIC S9(7) COMP-3.
                 15 AM32-DATE-DISPUTE                 PIC S9(7) COMP-3.
                 15 AM32-AMT-DISPUTE                  PIC S9(11)V9(2)
                     COMP-3.
                 15 AM32-DATE-MAIL-STAMP              PIC S9(7) COMP-3.
                 15 AM32-DATE-DISPUTE-SETTLED         PIC S9(7) COMP-3.
                 15 AM32-DATE-DISPUTE-PEND-EXPIRE     PIC S9(7) COMP-3.
                 15 AM32-TIME-DISPUTE-PEND-EXPIRE     PIC S9(7) COMP-3.
                 15 AM32-DISPUTE-TRANSACTION-KEY.
                    20 AM32-CDATE-STMT-BEGIN          PIC S9(7) COMP-3.
                    20 AM32-DATE-POST                 PIC S9(7) COMP-3.
                    20 AM32-TIME-POST                 PIC S9(7) COMP-3.
                 15 AM32-DATE-LAST-WORKED             PIC S9(7) COMP-3.
                 15 AM32-DATE-TRANSACTION             PIC S9(7) COMP-3.
                 15 AM32-AMT-TRANSACTION              PIC S9(11)V9(2)
                     COMP-3.
                 15 AM32-CENTRAL-PROC-DATE            PIC S9(7) COMP-3.

I wonder:

  1. Does this module support this copybook?
  2. Do I need to edit the copybook to make it work? I added line numbers as a test and I got the same error.
0

There are 0 best solutions below