Highlighted
Absent Member.
Absent Member.
3094 views

Error 53000 - Parsing error ( duplicate parameter name)

I Have an error in EA : Error 53000 - Parsing error ( duplicate parameter name)

in the line :

void * memcpy (void * __restrict__,

                     const void * __restrict__, size_t);

Also, I want to make a link between COBOL and C  programs. I mean that COBOL program knows the C coded module used in the main cobol.

0 Likes
4 Replies
Highlighted
Absent Member.
Absent Member.

RE: Error 53000 - Parsing error ( duplicate parameter name)

The error is fairly straight forward, you use __restrict__ twice in the call with different definitions.  It's not clear if this is a pure C program or something you are trying to embed in COBOL.  It's also not clear if this is from the compile or link step.

The "link" between COBOL and C is nothing more than a COBOL call using the correct  call-convention.

Can you provide more details on what you are doing?

0 Likes
Highlighted
Absent Member.
Absent Member.

RE: Error 53000 - Parsing error ( duplicate parameter name)

Also the Wiki is not an appropriate place to post questions , especially a duplicate of this.

0 Likes
Highlighted
Absent Member.
Absent Member.

RE: Error 53000 - Parsing error ( duplicate parameter name)

I'm sorry I'll try to delete the message from the WIKI

this problem is in the "string.h" header it gives the same message error for the line:

      void * memchr (const void *, int, size_t);

I think I need to fill the area: C / C + + parser parameters I tried to put "-D the name of macro example : "__restrict__" or "restrict" it gives me the message: 53000 - Too Many Arguements on the command line.

For the link I asked the question because even if you put the call C module from COBOL program, the tool  EA does not give the links in reports and displays a question mark next to the program name C in arborescene COBOL program

Thanks for answers.

0 Likes
Micro Focus Frequent Contributor
Micro Focus Frequent Contributor

RE: Error 53000 - Parsing error ( duplicate parameter name)

New functionality has been added to 3.3 Hot Fix 5 (and above) and 3.4 to create relationships between COBOL programs and C functions. This is provided as a batch process to be run after a normal verification cycle.

After verification and before the script is run, calls from COBOL to C functions will instead appear as calls to unresolved program entry points, and calls from C functions to COBOL will appear as calls to unresolved functions. The batch process scans the repository for these types of relationships, and when it locates an appropriate match, replaces the existing relationships with new ones linking the COBOL and C entities.

A new batch script is located in the <installation directory>\Enterprise Analyzer\Scripts\BRP\ and is called MFCobolCLink.bj. The script is executed with brave.exe as with other BRP scripts. Workspace is the only parameter required. Since the batch process does rely on HyperCode information, it should only be executed after all HyperCodeConverter instances have completed processing of the verification output. Also, the batch process will need to be re-run if the calling C or COBOL source file is re-verified, as the relationships will be re-generated.

After the batch script completes its run, the repository will contain new relationships to represent cross-language calls. Specifically, for COBOL-to-C calls, there will be a "Calls Program Entry Decision" relationship from the calling program to a new decision entity, and the decision entity will have a "Resolves to Function" relationship to the C function called from the COBOL program.

For C-to-COBOL calls, the pattern is similar. There will be a "Calls Decision" relationship from the calling C function to a new decision entity, and a "Resolves to Program Entry Point" from the decision to the COBOL program entry point called from the C function.”

---------------------------------

With 3.4 Hot Fix 2 the following was also added:

A new option called "Generate program entry points for main functions" has been added to the C File verification settings in the Workspace Options. When checked, any C function with the name "main" will get an associated program entry point object whose name is the last component of the file name.  For example, for C File "FOO/BAR/BAZ.c", the program entry point will be named "BAZ"). This allows connections to be made when the JCL jobs and COBOL programs call the C modules.

Another option has also been added and that is "Generate program entry points for filename functions", which works in a similar way, should the C module not have a main function. This means that once you have re-verified your C modules, the JCL or Cobol programs will now have resolved links to the C modules.

Adrian Bean
Support Engineer, EMEA SupportLine

Micro Focus

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.