summaryrefslogtreecommitdiff
path: root/Ganlib/src/objpil.c
blob: 5a5902c16ec9a7c4dd422dab6045dc956c90d76f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

/*****************************************/
/*             CLE-2000 API              */
/*   AUTHOR OF FORTRAN VERSION: R. Roy   */
/*     AUTHOR: A. Hebert ; 15/05/09      */
/*****************************************/

#include <string.h>
#include "cle2000.h"

int_32 objpil(kdi_file *iunito, FILE *iwrite, int_32 ldatav)
{

/*     GAN-2000 SYSTEM: R.ROY (12/1999), VERSION 2.1 */

/*             *OBJPIL* WILL COMPLETE SYNTACTICAL ANALYSIS */
/*                      INCLUDING OBJECT CONSISTENCE IN GAN-2000 */
/*                      RESULT IS THE OBJECT D.A. UNIT *IUNITO* */
/*                      COMPILER COMMENTS ARE WRITTEN ON UNIT *IWRITE* */
/*                      EVERYTHING IS CHECKED FOR CORRECT EXECUTION. */

/*      INPUT: *IUNITO* IS THE DIRECT ACCESS UNIT FOR OBJECT CODE */
/*             *IWRITE* IS THE OUTPUT UNIT FOR COMPILER COMMENTS */
/*             *LDATAV* =0/1: PROCEDURE SECTION/DATA SECTION */

/*       NOTE: *OBJPIL* = 0 IF NO PROBLEM WAS ENCOUNTERED WHILE COMPILING */

    char *nomsub = "objpil";
    char *clistc[] = {"objstk", "objxrf"};
    int_32 iretcd, istepc;
    int_32 ret_val = 0;

/*  ADD OBJECTS/MODULES TO CLE-2000 FILES */
    istepc = 0;
    iretcd = objstk(iunito, iwrite, ldatav);
    if (iretcd != 0) goto L9002;

/*  X-REF OBJECTS/MODULES */
    istepc = 1;
    iretcd = objxrf(iunito, iwrite);
    if (iretcd != 0) goto L9002;

L666:
    return ret_val;

L9002:
    printf("! %s: ERROR CODE IN >>%s<< ERROR NUMBER (%d)\n", nomsub, clistc[istepc], (int)iretcd);
    ret_val = iretcd;
    goto L666;

} /* objpil */