* Makefile.in (SYSTEM_H): Define.
[official-gcc.git] / gcc / f / parse.c
blobfeeb1d530c6e1cff974371b6dcc291ac69626ba2
1 /* GNU Fortran
2 Copyright (C) 1995 Free Software Foundation, Inc.
3 Contributed by James Craig Burley.
5 This file is part of GNU Fortran.
7 GNU Fortran is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
12 GNU Fortran is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU Fortran; see the file COPYING. If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
22 #include "proj.h"
23 #include "top.h"
24 #include "com.h"
25 #include "where.h"
26 #include "version.h"
27 #if FFECOM_targetCURRENT == FFECOM_targetGCC
28 #include "flags.h"
29 #endif
31 #define NAME_OF_STDIN "<stdin>"
33 #if FFECOM_targetCURRENT == FFECOM_targetFFE
34 void
35 main (int argc, char *argv[])
36 #elif FFECOM_targetCURRENT == FFECOM_targetGCC
37 FILE *finput;
39 int
40 yyparse ()
41 #else
42 #error
43 #endif
45 ffewhereFile wf;
47 if (ffe_is_version ())
48 fprintf (stderr, "GNU Fortran Front End version %s\n", ffe_version_string);
50 #if FFECOM_targetCURRENT == FFECOM_targetFFE
51 ffe_init_0 ();
54 int strings_processed;
55 for (--argc, ++argv; argc > 0; argc -= strings_processed, argv += strings_processed)
57 strings_processed = ffe_decode_option (argc, argv);
58 if (strings_processed == 0)
60 fprintf (stderr, "Unrecognized option: %s\n", argv[0]);
61 strings_processed = 1;
65 #elif FFECOM_targetCURRENT == FFECOM_targetGCC
66 if (!ffe_is_pedantic ())
67 ffe_set_is_pedantic (pedantic);
68 #else
69 #error
70 #endif
72 #if FFECOM_targetCURRENT == FFECOM_targetFFE
73 wf = ffewhere_file_new (NAME_OF_STDIN, strlen (NAME_OF_STDIN));
74 ffecom_file (NAME_OF_STDIN);
75 ffe_file (wf, stdin);
76 #elif FFECOM_targetCURRENT == FFECOM_targetGCC
77 wf = ffewhere_file_new (main_input_filename, strlen (main_input_filename));
78 ffecom_file (main_input_filename);
79 ffe_file (wf, finput);
80 #else
81 #error
82 #endif
84 #if FFECOM_targetCURRENT == FFECOM_targetGCC
85 ffecom_finish_compile ();
87 return 0;
88 #elif FFECOM_targetCURRENT == FFECOM_targetFFE
89 ffe_terminate_0 ();
91 exit (0);
92 #else
93 #error
94 #endif