Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dthelp / parser / canon1 / eltdef / eltdef.c
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /* $XConsortium: eltdef.c /main/3 1995/11/08 09:27:27 rswiston $ */
24 /*
25               Copyright 1986 Tandem Computers Incorporated.
26 This product and information is proprietary of Tandem Computers Incorporated.
27                    Copyright (c) 1986, 1987, 1988, 1989 Hewlett-Packard Co.
28 */
29
30 /* Eltdef.c contains the main program for ELTDEF */
31
32 #include <stdio.h>
33 #include <string.h>
34 #include <malloc.h>
35 #if defined(MSDOS)
36 #include <process.h>
37 #endif
38 #include "basic.h"
39 #include "trie.h"
40
41 #define M_DTDDEF
42 #include "dtd.h"
43
44 #include "context.h"
45 #include "delim.h"
46 #define ELTDEF
47 #include "eltdef.h"
48 #define M_ENTDEF
49 #include "entity.h"
50
51 /* Main program */
52 void main(argc, argv)
53   int argc ;
54   char **argv ;
55   {
56     int m_token ;
57
58     if (argc > 2)
59       if (*argv[2] == '-') {
60         if (strchr(argv[2], 'a')) m_malftrace = TRUE ;
61         if (strchr(argv[2], 'A')) m_malftrace = TRUE ;
62         if (strchr(argv[2], 'd')) debug = TRUE ;
63         if (strchr(argv[2], 'D')) debug = TRUE ;
64         if (strchr(argv[2], 'h')) m_heapchk = TRUE ;
65         if (strchr(argv[2], 'H')) m_heapchk = TRUE ;
66         if (strchr(argv[2], 's')) scantrace = TRUE ;
67         if (strchr(argv[2], 'S')) scantrace = TRUE ;
68         }
69       else
70         fprintf(stderr,
71      "****Starting with MARKUP 2.0, ELTDEF no longer writes a statistics file"
72          ) ;
73     if (argc < 2) {
74       fprintf(stderr, "**** Specify interface file ****\n") ;
75       exit(TRUE) ;
76       }
77     strncpy(iffile, argv[1], IFLEN) ;
78     initialize() ;
79     while (TRUE) {
80       m_token = scan() ;
81       if (m_token == ELT) restart = RELEMENT ;
82       m_prevcon = curcon ;
83       curcon = m_newcon(m_prevcon - 1, m_token - 1) ;
84       if (scantrace)
85         printf(
86        "Main: m_prevcon=%d,m_token=%d,curcon=%d,textchar='%c'(%d), line=%d\n",
87         m_prevcon, m_token, curcon, textchar, textchar, m_line) ;
88 #include "case.c"
89       if (m_token == ENDFILE) break ;
90       if (! curcon) {
91         m_error("Parsing table error") ;
92         break ;
93         }
94       }
95     done() ;
96     }