Thanx for the answer. I'll give that a try.

-----Ursprüngliche Nachricht-----
Von: c400-l-bounces+mihael.schmidt=rossmann.de@xxxxxxxxxxxx [mailto:c400-l-bounces+mihael.schmidt=rossmann.de@xxxxxxxxxxxx] Im Auftrag von Barbara Morris
Gesendet: Dienstag, 30. Juni 2009 20:02
An: c400-l@xxxxxxxxxxxx
Betreff: Re: [C400-L] Porting ClearSilver

Schmidt, Mihael wrote:
...
Also I am standing before the task of creating procedure prototypes
for RPG and am having some difficulties, especially with the data
structures.

typedef struct _neo_err
{
...
/* internal use only */
struct _neo_err *next;
} NEOERR;

Here the structure has a subfield with the type of itself ( struct
_neo_err *next). AFAIK this is not possible in RPG. Is there a workaround?

RPG doesn't have typed pointers, so you would just define next as a pointer.

D neoerr1 ds likeds(NEOERR)
D based(pNeoerr1)

pNeoerr1 = address of the first structure;
dow pNeoerr1 <> *null;
--- work with neoerr1 ---
pNeoerr1 = neoerr1.next;
enddo;


typedef enum
{
/* Unary operators */
CS_OP_NONE = (1<<0),
CS_OP_EXISTS = (1<<1),
CS_OP_NOT = (1<<2),
CS_OP_NUM = (1<<3),
...

} CSTOKEN_TYPE;

typedef struct _arg
{
CSTOKEN_TYPE op_type;
char *argexpr;
...
} CSARG;

How would I define the CSTOKEN_TYPE subfield in an RPG data structure?


The actual type of an C enum depends on your compile options (ENUM
parameter) and on the enum values. Compile the C version of the enum
and struct with OPTION(*AGR *XREF) and find out the size and type that C
is using for the enum and subfield. It will be either 1, 2, 4, 8 byte
integer or unsigned, that will map to one of RPG's 3i, 5i,10i, 20i, 3u,
5u, 10u or 20u.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact [javascript protected email address].