aboutsummaryrefslogtreecommitdiff
path: root/gcc/treelang/tree1.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2003-06-11 22:21:10 +0000
committerNeil Booth <neil@gcc.gnu.org>2003-06-11 22:21:10 +0000
commit7fb26bb00173af1f41d3df4b5a7a43be9e3f12db (patch)
tree2af8d6bf007345fd5e6e0ba2072ebff79f20b89c /gcc/treelang/tree1.c
parent24386c5ec6a6f91d94bb14a65f5ec8a5c84235bc (diff)
downloadgcc-7fb26bb00173af1f41d3df4b5a7a43be9e3f12db.zip
gcc-7fb26bb00173af1f41d3df4b5a7a43be9e3f12db.tar.gz
gcc-7fb26bb00173af1f41d3df4b5a7a43be9e3f12db.tar.bz2
hooks.c (hook_int_size_t_constcharptr_int_0): New.
* hooks.c (hook_int_size_t_constcharptr_int_0): New. * hooks.h (hook_int_size_t_constcharptr_int_0): New. * langhooks-def.h (lhd_decode_option, LANG_HOOKS_DECODE_OPTION): Die. (LANG_HOOKS_HANDLE_OPTION, LANG_HOOKS_INITIALIZER): Update. * langhooks.c (lhd_decode_option): Remove. * langhooks.h (struct lang_hooks): Remove decode_option. * opts.c (handle_option): No longer use decode_option. java: * Make-lang.in: Handle mostlyclean. treelang: * Make-lang.in: Update for option handling. * lang.opt: New. * tree1.c: Include opts.h and t-options.h. (treelang_decode_option): Remove. (treelang_handle_option): New. * treetree.c (LANG_HOOKS_DECODE_OPTION): Remove. (LANG_HOOKS_HANDLE_OPTION): Override. * treetree.h (treelang_decode_option): Remove. (treelang_handle_option): New. From-SVN: r67799
Diffstat (limited to 'gcc/treelang/tree1.c')
-rw-r--r--gcc/treelang/tree1.c112
1 files changed, 35 insertions, 77 deletions
diff --git a/gcc/treelang/tree1.c b/gcc/treelang/tree1.c
index 3a6681a..f4e5fa8 100644
--- a/gcc/treelang/tree1.c
+++ b/gcc/treelang/tree1.c
@@ -44,6 +44,8 @@
#include "treelang.h"
#include "treetree.h"
+#include "opts.h"
+#include "t-options.h"
extern int yyparse (void);
@@ -86,98 +88,54 @@ static int version_done = 0;
static unsigned int work_nesting_level = 0;
-/* Process one switch - called by toplev.c. */
-
+/* Process a switch - called by opts.c. */
int
-treelang_decode_option (num_options_left, first_option_left)
- int num_options_left ATTRIBUTE_UNUSED;
- char** first_option_left;
+treelang_handle_option (size_t scode, const char *arg ATTRIBUTE_UNUSED,
+ int value)
{
-
- /*
- Process options - bear in mind I may get options that are really
- meant for someone else (eg the main compiler) so I have to be very
- permissive.
-
- */
-
- if (first_option_left[0][0] != '-')
- return 0;
-
- switch (first_option_left[0][1])
- {
- case '-':
- if (!strcmp (first_option_left[0],"--help"))
- {
- if (!version_done)
- {
- fputs (language_string, stdout);
- fputs (version_string, stdout);
- fputs ("\n", stdout);
- version_done = 1;
- }
- fprintf (stdout, "Usage: tree1 [switches] -o output input\n");
- return 1;
- }
- break;
+ enum opt_code code = (enum opt_code) scode;
- case 'v':
- if (!strcmp (first_option_left[0],"-v"))
- {
- if (!version_done)
- {
- fputs (language_string, stdout);
- fputs (version_string, stdout);
- fputs ("\n", stdout);
- version_done = 1;
- }
- return 1;
- }
- break;
+ switch (code)
+ {
+ default:
+ return 0;
- case 'y':
- if (!strcmp (first_option_left[0],"-y"))
- {
- option_lexer_trace = 1;
- option_parser_trace = 1;
- return 1;
- }
+ case OPT__help:
+ if (!version_done)
+ {
+ fputs (language_string, stdout);
+ fputs (version_string, stdout);
+ fputs ("\n", stdout);
+ version_done = 1;
+ }
+ fprintf (stdout, "Usage: tree1 [switches] -o output input\n");
break;
- case 'f':
- if (!strcmp (first_option_left[0],"-fparser-trace"))
- {
- option_parser_trace = 1;
- return 1;
- }
- if (!strcmp (first_option_left[0],"-flexer-trace"))
- {
- option_lexer_trace = 1;
- return 1;
- }
+ case OPT_v:
+ if (!version_done)
+ {
+ fputs (language_string, stdout);
+ fputs (version_string, stdout);
+ fputs ("\n", stdout);
+ version_done = 1;
+ }
break;
- case 'w':
- if (!strcmp (first_option_left[0],"-w"))
- {
- /* Tolerate this option but ignore it - we always put out
- all warnings. */
- return 1;
- }
+ case OPT_y:
+ option_lexer_trace = 1;
+ option_parser_trace = 1;
break;
- case 'W':
- if (!strcmp (first_option_left[0],"-Wall"))
- {
- return 1;
- }
+ case OPT_fparser_trace:
+ option_parser_trace = value;
break;
- default:
+ case OPT_flexer_trace:
+ option_lexer_trace = value;
break;
}
- return 0;
+ return 1;
}
/* Language dependent parser setup. */