Git init
[external/mawk.git] / main.c
1
2 /********************************************
3 main.c
4 copyright 1991, Michael D. Brennan
5
6 This is a source file for mawk, an implementation of
7 the AWK programming language.
8
9 Mawk is distributed without warranty under the terms of
10 the GNU General Public License, version 2, 1991.
11 ********************************************/
12
13 /* $Log: main.c,v $
14  * Revision 1.4  1995/06/09  22:57:19  mike
15  * parse() no longer returns on error
16  *
17  * Revision 1.3  1995/06/06  00:18:32  mike
18  * change mawk_exit(1) to mawk_exit(2)
19  *
20  * Revision 1.2  1993/07/17  00:45:19  mike
21  * indent
22  *
23  * Revision 1.1.1.1  1993/07/03  18:58:16  mike
24  * move source to cvs
25  *
26  * Revision 5.4  1993/02/13  21:57:27  mike
27  * merge patch3
28  *
29  * Revision 5.3  1993/01/07  02:50:33  mike
30  * relative vs absolute code
31  *
32  * Revision 5.2.1.1  1993/01/15  03:33:44  mike
33  * patch3: safer double to int conversion
34  *
35  * Revision 5.2  1992/12/17  02:48:01  mike
36  * 1.1.2d changes for DOS
37  *
38  * Revision 5.1  1991/12/05  07:56:14  brennan
39  * 1.1 pre-release
40  *
41 */
42
43
44
45 /*  main.c  */
46
47 #include "mawk.h"
48 #include "init.h"
49 #include "code.h"
50 #include "files.h"
51
52
53 short mawk_state ;               /* 0 is compiling */
54 int exit_code ;
55
56 int
57 main(argc, argv)
58 int argc ; char **argv ;
59 {
60
61    initialize(argc, argv) ;
62
63    parse() ;
64
65    mawk_state = EXECUTION ;
66    execute(execution_start, eval_stack - 1, 0) ;
67    /* never returns */
68    return 0 ;
69 }
70
71 void
72 mawk_exit(x)
73    int x ;
74 {
75 #if  HAVE_REAL_PIPES
76    close_out_pipes() ;           /* no effect, if no out pipes */
77 #else
78 #if  HAVE_FAKE_PIPES
79    close_fake_pipes() ;
80 #endif
81 #endif
82
83    exit(x) ;
84 }