mirror of
https://github.com/golang/go
synced 2024-11-11 20:50:23 -07:00
gc: check in y.tab.[ch], yerr.h, builtin.c.
This enables builds on systems without Bison/yacc. R=golang-dev, iant CC=golang-dev https://golang.org/cl/5622051
This commit is contained in:
parent
c739dd2299
commit
d53cdd1775
@ -23,7 +23,6 @@ _test
|
|||||||
_testmain.go
|
_testmain.go
|
||||||
build.out
|
build.out
|
||||||
test.out
|
test.out
|
||||||
y.tab.[ch]
|
|
||||||
doc/tmpltohtml
|
doc/tmpltohtml
|
||||||
doc/codelab/wiki/*.bin
|
doc/codelab/wiki/*.bin
|
||||||
misc/cgo/life/run.out
|
misc/cgo/life/run.out
|
||||||
@ -35,12 +34,9 @@ src/Make.inc
|
|||||||
src/cmd/6a/6a
|
src/cmd/6a/6a
|
||||||
src/cmd/?l/enam.c
|
src/cmd/?l/enam.c
|
||||||
src/cmd/cc/y.output
|
src/cmd/cc/y.output
|
||||||
src/cmd/gc/builtin.c
|
|
||||||
src/cmd/gc/mkbuiltin1
|
src/cmd/gc/mkbuiltin1
|
||||||
src/cmd/gc/opnames.h
|
src/cmd/gc/opnames.h
|
||||||
src/cmd/gc/y.output
|
src/cmd/gc/y.output
|
||||||
src/cmd/gc/y1.tab.c
|
|
||||||
src/cmd/gc/yerr.h
|
|
||||||
src/pkg/Make.deps
|
src/pkg/Make.deps
|
||||||
src/pkg/exp/norm/maketables
|
src/pkg/exp/norm/maketables
|
||||||
src/pkg/exp/norm/maketesttables
|
src/pkg/exp/norm/maketesttables
|
||||||
|
@ -22,7 +22,7 @@ $(QUOTED_GOROOT)/lib/$(LIB): $(LIB)
|
|||||||
$(LIB): $(OFILES)
|
$(LIB): $(OFILES)
|
||||||
$(HOST_AR) rsc $(LIB) $(OFILES)
|
$(HOST_AR) rsc $(LIB) $(OFILES)
|
||||||
|
|
||||||
CLEANFILES+=y.tab.[ch] y.output a.out $(LIB)
|
CLEANFILES+=a.out $(LIB)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.$(HOST_O) $(CLEANFILES)
|
rm -f *.$(HOST_O) $(CLEANFILES)
|
||||||
@ -30,7 +30,7 @@ clean:
|
|||||||
nuke: clean
|
nuke: clean
|
||||||
rm -f "$(GOROOT)/lib/$(LIB)"
|
rm -f "$(GOROOT)/lib/$(LIB)"
|
||||||
|
|
||||||
y.tab.h: $(YFILES)
|
y.tab.h%: $(YFILES)
|
||||||
LANG=C LANGUAGE="en_US.UTF8" bison -v -y $(HOST_YFLAGS) $(YFILES)
|
LANG=C LANGUAGE="en_US.UTF8" bison -v -y $(HOST_YFLAGS) $(YFILES)
|
||||||
|
|
||||||
y.tab.c: y.tab.h
|
y.tab.c: y.tab.h
|
||||||
|
@ -12,9 +12,6 @@ HFILES=\
|
|||||||
y.tab.h\
|
y.tab.h\
|
||||||
md5.h\
|
md5.h\
|
||||||
|
|
||||||
YFILES=\
|
|
||||||
go.y\
|
|
||||||
|
|
||||||
OFILES=\
|
OFILES=\
|
||||||
align.$O\
|
align.$O\
|
||||||
bits.$O\
|
bits.$O\
|
||||||
@ -44,7 +41,7 @@ OFILES=\
|
|||||||
typecheck.$O\
|
typecheck.$O\
|
||||||
unsafe.$O\
|
unsafe.$O\
|
||||||
walk.$O\
|
walk.$O\
|
||||||
y1.tab.$O\
|
y.tab.$O\
|
||||||
|
|
||||||
HOST_CFLAGS+=-DGOEXPERIMENT='"$(GOEXPERIMENT)"'
|
HOST_CFLAGS+=-DGOEXPERIMENT='"$(GOEXPERIMENT)"'
|
||||||
|
|
||||||
@ -53,24 +50,25 @@ include ../../Make.clib
|
|||||||
|
|
||||||
install: $(LIB)
|
install: $(LIB)
|
||||||
|
|
||||||
y1.tab.c: y.tab.c # make yystate global, yytname mutable
|
|
||||||
cat y.tab.c | sed '/ int yystate;/d; s/int yychar;/int yychar, yystate;/; s/static const char \*const yytname/const char *yytname/; s/char const \*yymsgp/char *yymsgp/' >y1.tab.c
|
|
||||||
|
|
||||||
yerr.h: bisonerrors go.errors y.tab.h # y.tab.h rule generates y.output too
|
|
||||||
awk -f bisonerrors y.output go.errors >yerr.h
|
|
||||||
|
|
||||||
subr.$O: yerr.h
|
subr.$O: yerr.h
|
||||||
|
|
||||||
builtin.c: builtin.c.boot
|
|
||||||
cp builtin.c.boot builtin.c
|
|
||||||
|
|
||||||
fmt.$O: opnames.h
|
fmt.$O: opnames.h
|
||||||
|
|
||||||
opnames.h: mkopnames go.h
|
opnames.h: mkopnames go.h
|
||||||
./mkopnames go.h >opnames.h
|
./mkopnames go.h >opnames.h
|
||||||
|
|
||||||
CLEANFILES+=*.[568] [568].out y1.tab.c yerr.h mkbuiltin1 builtin.c _builtin.c opnames.h
|
CLEANFILES+=*.[568] [568].out mkbuiltin1 _builtin.c opnames.h
|
||||||
|
|
||||||
mkbuiltin1: mkbuiltin1.$O
|
mkbuiltin1: mkbuiltin1.$O
|
||||||
$(HOST_LD) -o $@ mkbuiltin1.$O -L"$(GOROOT)"/lib -lbio -l9 -lm $(HOST_LDFLAGS)
|
$(HOST_LD) -o $@ mkbuiltin1.$O -L"$(GOROOT)"/lib -lbio -l9 -lm $(HOST_LDFLAGS)
|
||||||
|
|
||||||
|
y.tab.h: go.y
|
||||||
|
bison -v -y -d go.y
|
||||||
|
# make yystate global, yytname mutable
|
||||||
|
cat y.tab.c | sed '/ int yystate;/d; s/int yychar;/int yychar, yystate;/; s/static const char \*const yytname/const char *yytname/; s/char const \*yymsgp/char *yymsgp/' >y1.tab.c
|
||||||
|
mv y1.tab.c y.tab.c
|
||||||
|
awk -f bisonerrors y.output go.errors >yerr.h
|
||||||
|
|
||||||
|
yerr.h: y.tab.h
|
||||||
|
test -f yerr.h && touch yerr.h
|
||||||
|
|
||||||
|
@ -10,22 +10,21 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
eval $(gomake --no-print-directory -f ../../Make.inc go-env)
|
eval $(go tool make --no-print-directory -f ../../Make.inc go-env)
|
||||||
if [ -z "$GC" ]; then
|
if [ -z "$GC" ]; then
|
||||||
echo 'missing $GC - gomake failed?' 1>&2
|
echo 'missing $GC - gomake failed?' 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gomake mkbuiltin1
|
go tool make mkbuiltin1
|
||||||
rm -f _builtin.c
|
rm -f _builtin.c
|
||||||
for i in runtime unsafe
|
for i in runtime unsafe
|
||||||
do
|
do
|
||||||
$GC -A $i.go
|
go tool $GC -A $i.go
|
||||||
O=$O ./mkbuiltin1 $i >>_builtin.c
|
O=$O ./mkbuiltin1 $i >>_builtin.c
|
||||||
done
|
done
|
||||||
|
|
||||||
# If _builtin.c has changed vs builtin.c.boot,
|
# If _builtin.c has changed vs builtin.c.boot,
|
||||||
# check in the new change.
|
# check in the new change.
|
||||||
cmp -s _builtin.c builtin.c.boot || cp _builtin.c builtin.c.boot
|
cmp -s _builtin.c builtin.c || cp _builtin.c builtin.c
|
||||||
|
rm _builtin.c
|
||||||
mv _builtin.c builtin.c
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build ignore
|
||||||
|
|
||||||
// Compile .go file, import data from .6 file, and generate C string version.
|
// Compile .go file, import data from .6 file, and generate C string version.
|
||||||
|
|
||||||
#include <u.h>
|
#include <u.h>
|
||||||
|
4927
src/cmd/gc/y.tab.c
Normal file
4927
src/cmd/gc/y.tab.c
Normal file
File diff suppressed because it is too large
Load Diff
167
src/cmd/gc/y.tab.h
Normal file
167
src/cmd/gc/y.tab.h
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
/* A Bison parser, made by GNU Bison 2.3. */
|
||||||
|
|
||||||
|
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||||
|
|
||||||
|
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
Boston, MA 02110-1301, USA. */
|
||||||
|
|
||||||
|
/* As a special exception, you may create a larger work that contains
|
||||||
|
part or all of the Bison parser skeleton and distribute that work
|
||||||
|
under terms of your choice, so long as that work isn't itself a
|
||||||
|
parser generator using the skeleton or a modified version thereof
|
||||||
|
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||||
|
the parser skeleton itself, you may (at your option) remove this
|
||||||
|
special exception, which will cause the skeleton and the resulting
|
||||||
|
Bison output files to be licensed under the GNU General Public
|
||||||
|
License without this special exception.
|
||||||
|
|
||||||
|
This special exception was added by the Free Software Foundation in
|
||||||
|
version 2.2 of Bison. */
|
||||||
|
|
||||||
|
/* Tokens. */
|
||||||
|
#ifndef YYTOKENTYPE
|
||||||
|
# define YYTOKENTYPE
|
||||||
|
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
||||||
|
know about them. */
|
||||||
|
enum yytokentype {
|
||||||
|
LLITERAL = 258,
|
||||||
|
LASOP = 259,
|
||||||
|
LBREAK = 260,
|
||||||
|
LCASE = 261,
|
||||||
|
LCHAN = 262,
|
||||||
|
LCOLAS = 263,
|
||||||
|
LCONST = 264,
|
||||||
|
LCONTINUE = 265,
|
||||||
|
LDDD = 266,
|
||||||
|
LDEFAULT = 267,
|
||||||
|
LDEFER = 268,
|
||||||
|
LELSE = 269,
|
||||||
|
LFALL = 270,
|
||||||
|
LFOR = 271,
|
||||||
|
LFUNC = 272,
|
||||||
|
LGO = 273,
|
||||||
|
LGOTO = 274,
|
||||||
|
LIF = 275,
|
||||||
|
LIMPORT = 276,
|
||||||
|
LINTERFACE = 277,
|
||||||
|
LMAP = 278,
|
||||||
|
LNAME = 279,
|
||||||
|
LPACKAGE = 280,
|
||||||
|
LRANGE = 281,
|
||||||
|
LRETURN = 282,
|
||||||
|
LSELECT = 283,
|
||||||
|
LSTRUCT = 284,
|
||||||
|
LSWITCH = 285,
|
||||||
|
LTYPE = 286,
|
||||||
|
LVAR = 287,
|
||||||
|
LANDAND = 288,
|
||||||
|
LANDNOT = 289,
|
||||||
|
LBODY = 290,
|
||||||
|
LCOMM = 291,
|
||||||
|
LDEC = 292,
|
||||||
|
LEQ = 293,
|
||||||
|
LGE = 294,
|
||||||
|
LGT = 295,
|
||||||
|
LIGNORE = 296,
|
||||||
|
LINC = 297,
|
||||||
|
LLE = 298,
|
||||||
|
LLSH = 299,
|
||||||
|
LLT = 300,
|
||||||
|
LNE = 301,
|
||||||
|
LOROR = 302,
|
||||||
|
LRSH = 303,
|
||||||
|
NotPackage = 304,
|
||||||
|
NotParen = 305,
|
||||||
|
PreferToRightParen = 306
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
/* Tokens. */
|
||||||
|
#define LLITERAL 258
|
||||||
|
#define LASOP 259
|
||||||
|
#define LBREAK 260
|
||||||
|
#define LCASE 261
|
||||||
|
#define LCHAN 262
|
||||||
|
#define LCOLAS 263
|
||||||
|
#define LCONST 264
|
||||||
|
#define LCONTINUE 265
|
||||||
|
#define LDDD 266
|
||||||
|
#define LDEFAULT 267
|
||||||
|
#define LDEFER 268
|
||||||
|
#define LELSE 269
|
||||||
|
#define LFALL 270
|
||||||
|
#define LFOR 271
|
||||||
|
#define LFUNC 272
|
||||||
|
#define LGO 273
|
||||||
|
#define LGOTO 274
|
||||||
|
#define LIF 275
|
||||||
|
#define LIMPORT 276
|
||||||
|
#define LINTERFACE 277
|
||||||
|
#define LMAP 278
|
||||||
|
#define LNAME 279
|
||||||
|
#define LPACKAGE 280
|
||||||
|
#define LRANGE 281
|
||||||
|
#define LRETURN 282
|
||||||
|
#define LSELECT 283
|
||||||
|
#define LSTRUCT 284
|
||||||
|
#define LSWITCH 285
|
||||||
|
#define LTYPE 286
|
||||||
|
#define LVAR 287
|
||||||
|
#define LANDAND 288
|
||||||
|
#define LANDNOT 289
|
||||||
|
#define LBODY 290
|
||||||
|
#define LCOMM 291
|
||||||
|
#define LDEC 292
|
||||||
|
#define LEQ 293
|
||||||
|
#define LGE 294
|
||||||
|
#define LGT 295
|
||||||
|
#define LIGNORE 296
|
||||||
|
#define LINC 297
|
||||||
|
#define LLE 298
|
||||||
|
#define LLSH 299
|
||||||
|
#define LLT 300
|
||||||
|
#define LNE 301
|
||||||
|
#define LOROR 302
|
||||||
|
#define LRSH 303
|
||||||
|
#define NotPackage 304
|
||||||
|
#define NotParen 305
|
||||||
|
#define PreferToRightParen 306
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||||
|
typedef union YYSTYPE
|
||||||
|
#line 28 "go.y"
|
||||||
|
{
|
||||||
|
Node* node;
|
||||||
|
NodeList* list;
|
||||||
|
Type* type;
|
||||||
|
Sym* sym;
|
||||||
|
struct Val val;
|
||||||
|
int i;
|
||||||
|
}
|
||||||
|
/* Line 1529 of yacc.c. */
|
||||||
|
#line 160 "y.tab.h"
|
||||||
|
YYSTYPE;
|
||||||
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||||
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern YYSTYPE yylval;
|
||||||
|
|
73
src/cmd/gc/yerr.h
Normal file
73
src/cmd/gc/yerr.h
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
// Copyright 2010 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Example-based syntax error messages.
|
||||||
|
// See bisonerrors, Makefile, go.y.
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
int yystate;
|
||||||
|
int yychar;
|
||||||
|
char *msg;
|
||||||
|
} yymsg[] = {
|
||||||
|
// Each line of the form % token list
|
||||||
|
// is converted by bisonerrors into the yystate and yychar caused
|
||||||
|
// by that token list.
|
||||||
|
|
||||||
|
220, ',',
|
||||||
|
"unexpected comma during import block",
|
||||||
|
|
||||||
|
376, ';',
|
||||||
|
"unexpected semicolon or newline before {",
|
||||||
|
|
||||||
|
397, ';',
|
||||||
|
"unexpected semicolon or newline before {",
|
||||||
|
|
||||||
|
236, ';',
|
||||||
|
"unexpected semicolon or newline before {",
|
||||||
|
|
||||||
|
473, LBODY,
|
||||||
|
"unexpected semicolon or newline before {",
|
||||||
|
|
||||||
|
22, '{',
|
||||||
|
"unexpected semicolon or newline before {",
|
||||||
|
|
||||||
|
143, ';',
|
||||||
|
"unexpected semicolon or newline in type declaration",
|
||||||
|
|
||||||
|
37, '}',
|
||||||
|
"unexpected } in channel type",
|
||||||
|
|
||||||
|
37, ')',
|
||||||
|
"unexpected ) in channel type",
|
||||||
|
|
||||||
|
37, ',',
|
||||||
|
"unexpected comma in channel type",
|
||||||
|
|
||||||
|
436, LELSE,
|
||||||
|
"unexpected semicolon or newline before else",
|
||||||
|
|
||||||
|
256, ',',
|
||||||
|
"name list not allowed in interface type",
|
||||||
|
|
||||||
|
236, LVAR,
|
||||||
|
"var declaration not allowed in for initializer",
|
||||||
|
|
||||||
|
65, '{',
|
||||||
|
"unexpected { at end of statement",
|
||||||
|
|
||||||
|
375, '{',
|
||||||
|
"unexpected { at end of statement",
|
||||||
|
|
||||||
|
124, ';',
|
||||||
|
"argument to go/defer must be function call",
|
||||||
|
|
||||||
|
424, ';',
|
||||||
|
"need trailing comma before newline in composite literal",
|
||||||
|
|
||||||
|
111, LNAME,
|
||||||
|
"nested func not allowed",
|
||||||
|
|
||||||
|
614, ';',
|
||||||
|
"else must be followed by if or statement block"
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user