Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tools/m4 break cyclical dependency of lex depending on m4 an...



details:   https://anonhg.NetBSD.org/src/rev/0218bf62f0d8
branches:  trunk
changeset: 748573:0218bf62f0d8
user:      christos <christos%NetBSD.org@localhost>
date:      Tue Oct 27 18:35:09 2009 +0000

description:
break cyclical dependency of lex depending on m4 and m4 depending on lex,
by providing pre-built lex and yacc files for m4.

diffstat:

 tools/m4/Makefile              |    13 +-
 tools/m4/bootstrap/parser.c    |   649 +++++++++++++
 tools/m4/bootstrap/parser.h    |    12 +
 tools/m4/bootstrap/tokenizer.c |  1899 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 2572 insertions(+), 1 deletions(-)

diffs (truncated from 2594 to 300 lines):

diff -r c03a7b79d8d3 -r 0218bf62f0d8 tools/m4/Makefile
--- a/tools/m4/Makefile Tue Oct 27 17:51:19 2009 +0000
+++ b/tools/m4/Makefile Tue Oct 27 18:35:09 2009 +0000
@@ -1,6 +1,17 @@
-#      $NetBSD: Makefile,v 1.3 2002/12/08 20:20:01 thorpej Exp $
+#      $NetBSD: Makefile,v 1.4 2009/10/27 18:35:09 christos Exp $
 
 HOSTPROGNAME=  ${_TOOL_PREFIX}m4
 HOST_SRCDIR=   usr.bin/m4
 
 .include "${.CURDIR}/../Makefile.host"
+
+# Don't build any of those; we don't have lex and yacc available yet
+.y.c .y.h .l.c:
+       @true
+
+parser.c: ${.CURDIR}/bootstrap/parser.c
+       @ln -sf ${.ALLSRC:M*.c} $@
+parser.h: ${.CURDIR}/bootstrap/parser.h
+       @ln -sf ${.ALLSRC:M*.h} $@
+tokenizer.c: ${.CURDIR}/bootstrap/tokenizer.c
+       @ln -sf ${.ALLSRC:M*.c} $@
diff -r c03a7b79d8d3 -r 0218bf62f0d8 tools/m4/bootstrap/parser.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/m4/bootstrap/parser.c       Tue Oct 27 18:35:09 2009 +0000
@@ -0,0 +1,649 @@
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+#include <stdlib.h>
+#ifndef lint
+#if 0
+static char yysccsid[] = "@(#)yaccpar  1.9 (Berkeley) 02/21/93";
+#else
+#if defined(__NetBSD__) && defined(__IDSTRING)
+__IDSTRING(yyrcsid, "NetBSD: skeleton.c,v 1.29 2008/07/18 14:25:37 drochner Exp ");
+#endif /* __NetBSD__ && __IDSTRING */
+#endif /* 0 */
+#endif /* lint */
+#define YYBYACC 1
+#define YYMAJOR 1
+#define YYMINOR 9
+#define YYLEX yylex()
+#define YYEMPTY -1
+#define yyclearin (yychar=(YYEMPTY))
+#define yyerrok (yyerrflag=0)
+#define YYRECOVERING (yyerrflag!=0)
+#define YYPREFIX "yy"
+#line 2 "/usr/src/tools/m4/../../usr.bin/m4/parser.y"
+/* NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp  */
+/* $OpenBSD: parser.y,v 1.6 2008/08/21 21:00:14 espie Exp $ */
+/*
+ * Copyright (c) 2004 Marc Espie <espie%cvs.openbsd.org@localhost>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+__RCSID("NetBSD: parser.y,v 1.2 2009/10/26 21:11:28 christos Exp ");
+#include <stdint.h>
+#define YYSTYPE        int32_t
+extern int32_t end_result;
+extern int yylex(void);
+extern int yyerror(const char *);
+#line 48 "parser.c"
+#define NUMBER 257
+#define ERROR 258
+#define LOR 259
+#define LAND 260
+#define EQ 261
+#define NE 262
+#define LE 263
+#define GE 264
+#define LSHIFT 265
+#define RSHIFT 266
+#define UMINUS 267
+#define UPLUS 268
+#define YYERRCODE 256
+const short yylhs[] = {                                        -1,
+    0,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+    1,    1,    1,    1,    1,
+};
+const short yylen[] = {                                         2,
+    1,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
+    2,    2,    2,    2,    1,
+};
+const short yydefred[] = {                                      0,
+   25,    0,    0,    0,    0,    0,    0,    0,   22,   21,
+   23,   24,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,   20,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    4,    5,    6,
+};
+const short yydgoto[] = {                                       7,
+    8,
+};
+const short yysindex[] = {                                    -13,
+    0,  -13,  -13,  -13,  -13,  -13,    0,  190,    0,    0,
+    0,    0,  114,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+  -13,    0,  321,  347,  159,  397,  354,  -24,  -24,  -35,
+  -35,  -35,  -35,  136,  136,  -31,  -31,    0,    0,    0,
+};
+const short yyrindex[] = {                                      0,
+    0,    0,    0,    0,    0,    0,    0,    3,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,   65,   56,   51,   48,   74,   60,   66,   34,
+   40,   76,   83,   17,   26,    1,    9,    0,    0,    0,
+};
+const short yygindex[] = {                                      0,
+  458,
+};
+#define YYTABLESIZE 663
+const short yytable[] = {                                       0,
+    2,   31,    1,    0,    0,   31,   29,   27,    3,   28,
+   29,   30,   31,    0,    0,   30,    7,   29,   27,    4,
+   28,    0,   30,    0,    0,    8,    6,    0,    0,    2,
+    0,    3,    0,    9,    0,   21,    0,   23,    2,   11,
+    0,    2,    0,    2,    0,    2,    3,   16,    0,    3,
+   17,    3,    0,    3,    7,   18,    0,    7,    0,   13,
+    2,    0,    2,    8,   19,   14,    8,    0,    3,    0,
+    3,    9,    0,   15,    9,   10,    7,   11,    7,    0,
+   11,    0,   12,    0,    0,    8,    0,    8,   16,    0,
+    0,   17,    0,    9,    2,    9,   18,   13,    0,   11,
+   13,   11,    3,   14,    0,   19,   14,    0,    0,    0,
+    7,   15,    5,   10,   15,    0,   10,    0,    0,    8,
+   12,    0,    0,   12,    2,    0,    0,    9,    0,    0,
+    0,    0,    3,   11,    0,   10,    0,   10,    0,    0,
+    7,   16,   12,    0,   12,    0,    0,    0,    0,    8,
+   31,   18,    0,   13,   32,   29,   27,    9,   28,   14,
+   30,    0,    0,   11,    0,    0,    0,   15,    0,   10,
+    0,   16,   31,   21,   17,   23,   12,   29,   27,    0,
+   28,    0,   30,   13,    0,    0,    0,    0,    0,   14,
+    0,    0,    0,    0,    0,   31,   18,   15,    0,   10,
+   29,   27,    0,   28,    0,   30,   12,   17,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,   21,    0,
+   23,    0,    0,    0,    0,    0,   31,   18,    0,   25,
+   26,   29,   27,    0,   28,    0,   30,   16,   22,   24,
+   25,   26,    0,    1,    0,    0,    0,    0,    0,   21,
+    0,   23,   17,    0,    0,    0,    0,    0,    0,    2,
+    2,    2,    2,    2,    2,    2,    2,    3,    3,    3,
+    3,    3,    3,    3,    3,    7,    7,    7,    7,    7,
+    7,    7,    7,   17,    8,    8,    8,    8,    8,    8,
+    8,    8,    9,    9,    9,    9,    9,    9,   11,   11,
+   11,   11,   11,   11,    0,    0,   16,   16,    0,   17,
+   17,    0,    0,   16,   18,   18,    0,    0,   13,   13,
+   13,   13,    0,   19,   14,   14,   14,   14,    0,    0,
+    0,    0,   15,   15,   10,   10,   10,   10,   10,   10,
+    0,   12,   12,   12,   12,   12,   12,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,   31,   18,    0,
+    0,    0,   29,   27,    0,   28,    0,   30,    0,    0,
+    0,    0,   14,   15,   19,   20,   22,   24,   25,   26,
+   21,    0,   23,   31,   18,    0,    0,    0,   29,   27,
+   31,   28,    0,   30,    0,   29,   27,    0,   28,    0,
+   30,    0,    0,    0,    0,    0,   21,    0,   23,    0,
+    0,    0,    0,   21,   17,   23,    0,    0,    0,   19,
+   20,   22,   24,   25,   26,    0,    0,    0,    0,    0,
+    0,    0,    0,   31,   18,    0,    0,    0,   29,   27,
+   17,   28,    0,   30,   16,    0,    0,    0,   14,   15,
+   19,   20,   22,   24,   25,   26,   21,    0,   23,    9,
+   10,   11,   12,   13,    0,    0,    0,    0,    0,    0,
+   16,   33,   34,   35,   36,   37,   38,   39,   40,   41,
+   42,   43,   44,   45,   46,   47,   48,   49,   50,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+   15,   19,   20,   22,   24,   25,   26,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,   19,   20,   22,
+   24,   25,   26,    0,   19,   20,   22,   24,   25,   26,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+    0,    0,    0,    0,    0,    0,    0,   19,   20,   22,
+   24,   25,   26,
+};
+const short yycheck[] = {                                      -1,
+    0,   37,    0,   -1,   -1,   37,   42,   43,    0,   45,
+   42,   47,   37,   -1,   -1,   47,    0,   42,   43,   33,
+   45,   -1,   47,   -1,   -1,    0,   40,   -1,   -1,   43,
+   -1,   45,   -1,    0,   -1,   60,   -1,   62,   38,    0,
+   -1,   41,   -1,   43,   -1,   45,   38,    0,   -1,   41,
+    0,   43,   -1,   45,   38,    0,   -1,   41,   -1,    0,
+   60,   -1,   62,   38,    0,    0,   41,   -1,   60,   -1,
+   62,   38,   -1,    0,   41,    0,   60,   38,   62,   -1,
+   41,   -1,    0,   -1,   -1,   60,   -1,   62,   41,   -1,
+   -1,   41,   -1,   60,   94,   62,   41,   38,   -1,   60,
+   41,   62,   94,   38,   -1,   41,   41,   -1,   -1,   -1,
+   94,   38,  126,   38,   41,   -1,   41,   -1,   -1,   94,
+   38,   -1,   -1,   41,  124,   -1,   -1,   94,   -1,   -1,
+   -1,   -1,  124,   94,   -1,   60,   -1,   62,   -1,   -1,
+  124,   94,   60,   -1,   62,   -1,   -1,   -1,   -1,  124,
+   37,   38,   -1,   94,   41,   42,   43,  124,   45,   94,
+   47,   -1,   -1,  124,   -1,   -1,   -1,   94,   -1,   94,
+   -1,  124,   37,   60,  124,   62,   94,   42,   43,   -1,
+   45,   -1,   47,  124,   -1,   -1,   -1,   -1,   -1,  124,
+   -1,   -1,   -1,   -1,   -1,   37,   38,  124,   -1,  124,
+   42,   43,   -1,   45,   -1,   47,  124,   94,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,
+   62,   -1,   -1,   -1,   -1,   -1,   37,   38,   -1,  265,
+  266,   42,   43,   -1,   45,   -1,   47,  124,  263,  264,
+  265,  266,   -1,  257,   -1,   -1,   -1,   -1,   -1,   60,
+   -1,   62,   94,   -1,   -1,   -1,   -1,   -1,   -1,  259,
+  260,  261,  262,  263,  264,  265,  266,  259,  260,  261,
+  262,  263,  264,  265,  266,  259,  260,  261,  262,  263,
+  264,  265,  266,   94,  259,  260,  261,  262,  263,  264,
+  265,  266,  259,  260,  261,  262,  263,  264,  259,  260,
+  261,  262,  263,  264,   -1,   -1,  259,  260,   -1,  259,
+  260,   -1,   -1,  124,  259,  260,   -1,   -1,  259,  260,
+  261,  262,   -1,  259,  259,  260,  261,  262,   -1,   -1,
+   -1,   -1,  259,  260,  259,  260,  261,  262,  263,  264,
+   -1,  259,  260,  261,  262,  263,  264,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   38,   -1,
+   -1,   -1,   42,   43,   -1,   45,   -1,   47,   -1,   -1,
+   -1,   -1,  259,  260,  261,  262,  263,  264,  265,  266,
+   60,   -1,   62,   37,   38,   -1,   -1,   -1,   42,   43,
+   37,   45,   -1,   47,   -1,   42,   43,   -1,   45,   -1,
+   47,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   -1,
+   -1,   -1,   -1,   60,   94,   62,   -1,   -1,   -1,  261,
+  262,  263,  264,  265,  266,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   37,   38,   -1,   -1,   -1,   42,   43,
+   94,   45,   -1,   47,  124,   -1,   -1,   -1,  259,  260,
+  261,  262,  263,  264,  265,  266,   60,   -1,   62,    2,
+    3,    4,    5,    6,   -1,   -1,   -1,   -1,   -1,   -1,
+  124,   14,   15,   16,   17,   18,   19,   20,   21,   22,
+   23,   24,   25,   26,   27,   28,   29,   30,   31,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+  260,  261,  262,  263,  264,  265,  266,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,
+  264,  265,  266,   -1,  261,  262,  263,  264,  265,  266,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+   -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,
+  264,  265,  266,
+};
+#define YYFINAL 7
+#ifndef YYDEBUG
+#define YYDEBUG 0
+#endif
+#define YYMAXTOKEN 268
+#if YYDEBUG
+const char * const yyname[] = {
+"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+"'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,
+0,0,0,0,0,"'<'",0,"'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,"'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,
+"'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,"NUMBER","ERROR","LOR","LAND","EQ","NE","LE","GE",
+"LSHIFT","RSHIFT","UMINUS","UPLUS",
+};
+const char * const yyrule[] = {
+"$accept : top",
+"top : expr",
+"expr : expr '+' expr",
+"expr : expr '-' expr",
+"expr : expr '*' expr",
+"expr : expr '/' expr",
+"expr : expr '%' expr",
+"expr : expr LSHIFT expr",
+"expr : expr RSHIFT expr",
+"expr : expr '<' expr",
+"expr : expr '>' expr",
+"expr : expr LE expr",
+"expr : expr GE expr",
+"expr : expr EQ expr",
+"expr : expr NE expr",
+"expr : expr '&' expr",
+"expr : expr '^' expr",



Home | Main Index | Thread Index | Old Index