// 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.

	221, ',',
	"unexpected comma during import block",

	377, ';',
	"unexpected semicolon or newline before {",

	398, ';',
	"unexpected semicolon or newline before {",

	237, ';',
	"unexpected semicolon or newline before {",

	474, LBODY,
	"unexpected semicolon or newline before {",

	22, '{',
	"unexpected semicolon or newline before {",

	144, ';',
	"unexpected semicolon or newline in type declaration",

	37, '}',
	"unexpected } in channel type",
	
	37, ')',
	"unexpected ) in channel type",
	
	37, ',',
	"unexpected comma in channel type",

	437, LELSE,
	"unexpected semicolon or newline before else",

	257, ',',
	"name list not allowed in interface type",

	237, LVAR,
	"var declaration not allowed in for initializer",

	65, '{',
	"unexpected { at end of statement",

	376, '{',
	"unexpected { at end of statement",
	
	125, ';',
	"argument to go/defer must be function call",
	
	425, ';',
	"need trailing comma before newline in composite literal",
	
	112, LNAME,
	"nested func not allowed",

	615, ';',
	"else must be followed by if or statement block"
};
