Imported Upstream version 20170430
[platform/upstream/byacc.git] / output.c
index 0f5194a..d52d920 100644 (file)
--- a/output.c
+++ b/output.c
@@ -1,4 +1,4 @@
-/* $Id: output.c,v 1.79 2016/12/02 20:42:38 tom Exp $ */
+/* $Id: output.c,v 1.81 2017/04/30 23:23:32 tom Exp $ */
 
 #include "defs.h"
 
@@ -1584,6 +1584,19 @@ output_pure_parser(FILE * fp)
     putc_code(fp, '\n');
 }
 
+#if defined(YY_NO_LEAKS)
+static void
+output_no_leaks(FILE * fp)
+{
+    putc_code(fp, '\n');
+
+    if (fp == code_file)
+       ++outline;
+    fputs("#define YY_NO_LEAKS 1\n", fp);
+    putc_code(fp, '\n');
+}
+#endif
+
 static void
 output_trailing_text(void)
 {
@@ -1985,6 +1998,9 @@ output(void)
 
     output_prefix(fp);
     output_pure_parser(fp);
+#if defined(YY_NO_LEAKS)
+    output_no_leaks(fp);
+#endif
     output_stored_text(fp);
     output_stype(fp);
 #if defined(YYBTYACC)
@@ -2068,6 +2084,10 @@ output(void)
        write_section(code_file, body_vars);
     }
     write_section(code_file, body_2);
+    if (pure_parser)
+    {
+       write_section(code_file, init_vars);
+    }
 #if defined(YYBTYACC)
     if (initial_action)
        output_initial_action();