parse.y (yyparse_1): Rename the parser entry point.
authorRichard Henderson <rth@gcc.gnu.org>
Tue, 21 Nov 2000 07:39:52 +0000 (23:39 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 21 Nov 2000 07:39:52 +0000 (23:39 -0800)
        * cp/parse.y (yyparse_1): Rename the parser entry point.

        * c-lex.c (orig_filename): New variable.
        (init_c_lex): Set it.  Move call to cpp_start_read ...
        (yyparse): ... here.  New function.
        * c-parse.in (yyparse_1): Rename the parser entry point.
        * c-tree.h: Declare it.

From-SVN: r37607

gcc/ChangeLog
gcc/c-lex.c
gcc/c-parse.in
gcc/c-tree.h
gcc/cp/ChangeLog
gcc/cp/parse.y

index 52963ce7ca3ce843ab2bc0c51496f8eb8e2405a2..ed6b6fe243525323868d33653afc5b0e0c9a2fd7 100644 (file)
@@ -1,3 +1,11 @@
+2000-11-20  Richard Henderson  <rth@redhat.com>
+
+       * c-lex.c (orig_filename): New variable.
+       (init_c_lex): Set it.  Move call to cpp_start_read ...
+       (yyparse): ... here.  New function.
+       * c-parse.in (yyparse_1): Rename the parser entry point.
+       * c-tree.h: Declare it.
+
 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
 
        * expr.c (do_compare_and_jump): If op0 was replaced by promoted
index faa8e5957dbe60dfa9570c5f67628c28c792abc2..4f9b8cc7e01e645308099c72c9071971c2de3209 100644 (file)
@@ -60,6 +60,9 @@ extern cpp_reader  parse_in;
 FILE *finput;
 #endif
 
+/* The original file name, before changing "-" to "stdin".  */
+static const char *orig_filename;
+
 /* Private idea of the line number.  See discussion in c_lex().  */
 static int lex_lineno;
 
@@ -170,6 +173,8 @@ init_c_lex (filename)
 {
   struct c_fileinfo *toplevel;
 
+  orig_filename = filename;
+
   /* Set up filename timing.  Must happen before cpp_start_read.  */
   file_info_tree = splay_tree_new ((splay_tree_compare_fn)strcmp,
                                   0,
@@ -214,9 +219,6 @@ init_c_lex (filename)
   /* Make sure parse_in.digraphs matches flag_digraphs.  */
   CPP_OPTION (&parse_in, digraphs) = flag_digraphs;
 
-  if (! cpp_start_read (&parse_in, filename))
-    exit (FATAL_EXIT_CODE);    /* cpplib has emitted an error.  */
-
   if (filename == 0 || !strcmp (filename, "-"))
     filename = "stdin";
 #endif
@@ -232,6 +234,18 @@ init_c_lex (filename)
   return filename;
 }
 
+/* A thin wrapper around the real parser that initializes the 
+   integrated preprocessor after debug output has been initialized.  */
+
+int
+yyparse()
+{
+  if (! cpp_start_read (&parse_in, orig_filename))
+    return 1;                  /* cpplib has emitted an error.  */
+
+  return yyparse_1();
+}
+
 struct c_fileinfo *
 get_fileinfo (name)
      const char *name;
index 517b488c9d9a4849605525d42fe7f7428938a369..5943fa4024a0ae72c0a7a1542248e7be7a40a982 100644 (file)
@@ -72,8 +72,11 @@ end ifc
 /* Like YYERROR but do call yyerror.  */
 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
 
-/* Cause the `yydebug' variable to be defined.  */
+/* Cause the "yydebug" variable to be defined.  */
 #define YYDEBUG 1
+
+/* Rename the "yyparse" function so that we can override it elsewhere.  */
+#define yyparse yyparse_1
 %}
 
 %start program
index 669c89b7d1bdd937d64c6840ac5b44d8df81f72f..41a6075c184f7777e54c15739175382f35478ee5 100644 (file)
@@ -154,6 +154,7 @@ extern tree lookup_objc_ivar                        PARAMS ((tree));
 \f
 /* in c-parse.in */
 extern void c_parse_init                       PARAMS ((void));
+extern int yyparse_1                           PARAMS ((void));
 
 /* in c-aux-info.c */
 extern void gen_aux_info_record                 PARAMS ((tree, int, int, int));
index c75edb942ccbf501fb55d4b1cd04e7f2089f3bfc..bc73be5a6f4992570dd75fa0e678224b29ba82b5 100644 (file)
@@ -1,4 +1,8 @@
-2000-11-16  Alex Samuel  <samuel@codesourcery.com>
+2000-11-20  Richard Henderson  <rth@redhat.com>
+
+       * parse.y (yyparse_1): Rename the parser entry point.
+
+2000-11-20  Alex Samuel  <samuel@codesourcery.com>
 
        * mangle.c (write_name): Use <unscoped-name> for names directly in
        function scope.
index 13c678b7b2a61436882cf5fb135911805ac8b564..d55f1b9f058f5106e108d60ebf62a78e837a608a 100644 (file)
@@ -214,6 +214,9 @@ cp_parse_init ()
   ggc_add_tree_root (&current_enum_type, 1);
   ggc_add_tree_root (&saved_scopes, 1);
 }
+
+/* Rename the "yyparse" function so that we can override it elsewhere.  */
+#define yyparse yyparse_1
 %}
 
 %start program