aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2007-09-18 06:22:01 +0000
committerTanya Lattner <tonic@nondot.org>2007-09-18 06:22:01 +0000
commit1480e2557d5dfe84e8bd76c820226bae376589db (patch)
treef4f2d611b0c650008240afad00bf7f4f00a6ca4d
parentfc9f915baa78e3b5ac379012f4844ccc9486beb3 (diff)
Merge from mainline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_21@42085 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--utils/TableGen/FileLexer.cpp.cvs82
-rw-r--r--utils/TableGen/FileParser.cpp.cvs3643
-rw-r--r--utils/TableGen/FileParser.h.cvs134
3 files changed, 1511 insertions, 2348 deletions
diff --git a/utils/TableGen/FileLexer.cpp.cvs b/utils/TableGen/FileLexer.cpp.cvs
index f36921b8bd..a4361405a5 100644
--- a/utils/TableGen/FileLexer.cpp.cvs
+++ b/utils/TableGen/FileLexer.cpp.cvs
@@ -21,7 +21,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header$
+ * $Header: /cvs/root/flex/flex/skel.c,v 1.2 2004/05/07 00:28:17 jkh Exp $
*/
#define FLEX_SCANNER
@@ -502,7 +502,7 @@ goto find_rule; \
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 1 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
#define INITIAL 0
/*===-- FileLexer.l - Scanner for TableGen Files ----------------*- C++ -*-===//
//
@@ -520,7 +520,7 @@ char *yytext;
#define YY_NEVER_INTERACTIVE 1
#define comment 1
-#line 30 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 30 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
#include "llvm/Config/config.h"
#include "llvm/Support/Streams.h"
#include "Record.h"
@@ -817,7 +817,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 185 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 185 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
#line 824 "Lexer.cpp"
@@ -913,185 +913,185 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 187 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 187 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ /* Ignore comments */ }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 189 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 189 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ HandleInclude(yytext); }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 190 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 190 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext+2, yytext+yyleng-2);
return CODEFRAGMENT; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 193 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 193 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return INT; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 194 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 194 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return BIT; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 195 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 195 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return BITS; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 196 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 196 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return STRING; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 197 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 197 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return LIST; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 198 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 198 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return CODE; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 199 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 199 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return DAG; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 201 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 201 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return CLASS; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 202 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 202 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return DEF; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 203 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 203 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return DEFM; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 204 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 204 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return MULTICLASS; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 205 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 205 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return FIELD; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 206 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 206 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return LET; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 207 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 207 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return IN; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 209 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 209 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return CONCATTOK; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 210 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 210 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SRATOK; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 211 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 211 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SRLTOK; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 212 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 212 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SHLTOK; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 213 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 213 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return STRCONCATTOK; }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 216 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 216 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext, yytext+yyleng);
return ID; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 218 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 218 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng);
return VARNAME; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 221 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 221 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1);
return STRVAL; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 224 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 224 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.IntVal = ParseInt(Filetext); return INTVAL; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 226 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 226 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 229 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 229 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ BEGIN(comment); CommentDepth++; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 230 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 230 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat anything that's not a '*' or '/' */
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 231 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 231 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat up '*'s not followed by '/'s */
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 232 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 232 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ ++CommentDepth; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 233 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 233 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat up /'s not followed by *'s */
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 234 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 234 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ if (!--CommentDepth) { BEGIN(INITIAL); } }
YY_BREAK
case YY_STATE_EOF(comment):
-#line 235 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 235 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ err() << "Unterminated comment!\n"; exit(1); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 237 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 237 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return Filetext[0]; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 239 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 239 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 1098 "Lexer.cpp"
@@ -1978,6 +1978,6 @@ int main()
return 0;
}
#endif
-#line 239 "/Volumes/Wildlings/echeng/llvm/utils/TableGen/FileLexer.l"
+#line 239 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
diff --git a/utils/TableGen/FileParser.cpp.cvs b/utils/TableGen/FileParser.cpp.cvs
index 6cfc3dde27..a49846ffa0 100644
--- a/utils/TableGen/FileParser.cpp.cvs
+++ b/utils/TableGen/FileParser.cpp.cvs
@@ -1,134 +1,42 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made from /Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y
+ by GNU Bison version 1.28 */
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+#define YYBISON 1 /* Identify Bison output. */
- 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. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "2.3"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* Substitute the variable and function names. */
#define yyparse Fileparse
-#define yylex Filelex
+#define yylex Filelex
#define yyerror Fileerror
-#define yylval Filelval
-#define yychar Filechar
+#define yylval Filelval
+#define yychar Filechar
#define yydebug Filedebug
#define yynerrs Filenerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- INT = 258,
- BIT = 259,
- STRING = 260,
- BITS = 261,
- LIST = 262,
- CODE = 263,
- DAG = 264,
- CLASS = 265,
- DEF = 266,
- MULTICLASS = 267,
- DEFM = 268,
- FIELD = 269,
- LET = 270,
- IN = 271,
- SHLTOK = 272,
- SRATOK = 273,
- SRLTOK = 274,
- STRCONCATTOK = 275,
- INTVAL = 276,
- ID = 277,
- VARNAME = 278,
- STRVAL = 279,
- CODEFRAGMENT = 280
- };
-#endif
-/* Tokens. */
-#define INT 258
-#define BIT 259
-#define STRING 260
-#define BITS 261
-#define LIST 262
-#define CODE 263
-#define DAG 264
-#define CLASS 265
-#define DEF 266
-#define MULTICLASS 267
-#define DEFM 268
-#define FIELD 269
-#define LET 270
-#define IN 271
-#define SHLTOK 272
-#define SRATOK 273
-#define SRLTOK 274
-#define STRCONCATTOK 275
-#define INTVAL 276
-#define ID 277
-#define VARNAME 278
-#define STRVAL 279
-#define CODEFRAGMENT 280
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 14 "/Volumes/Gir/devel/llvm/llvm.src/utils/TableGen/FileParser.y"
+#define INT 257
+#define BIT 258
+#define STRING 259
+#define BITS 260
+#define LIST 261
+#define CODE 262
+#define DAG 263
+#define CLASS 264
+#define DEF 265
+#define MULTICLASS 266
+#define DEFM 267
+#define FIELD 268
+#define LET 269
+#define IN 270
+#define CONCATTOK 271
+#define SHLTOK 272
+#define SRATOK 273
+#define SRLTOK 274
+#define STRCONCATTOK 275
+#define INTVAL 276
+#define ID 277
+#define VARNAME 278
+#define STRVAL 279
+#define CODEFRAGMENT 280
+
+#line 14 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
#include "Record.h"
#include "llvm/ADT/StringExtras.h"
@@ -324,29 +232,8 @@ static void addSubClass(Record *SC, const std::vector<Init*> &TemplateArgs) {
using namespace llvm;
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 210 "/Volumes/Gir/devel/llvm/llvm.src/utils/TableGen/FileParser.y"
-{
+#line 210 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+typedef union {
std::string* StrVal;
int IntVal;
llvm::RecTy* Ty;
@@ -358,1195 +245,575 @@ typedef union YYSTYPE
SubClassRefTy* SubClassRef;
std::vector<SubClassRefTy>* SubClassList;
std::vector<std::pair<llvm::Init*, std::string> >* DagValueList;
-}
-/* Line 193 of yacc.c. */
-#line 364 "FileParser.tab.c"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 216 of yacc.c. */
-#line 377 "FileParser.tab.c"
+} YYSTYPE;
+#include <stdio.h>
-#ifdef short
-# undef short
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
#endif
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
+#define YYFINAL 194
+#define YYFLAG -32768
+#define YYNTBASE 42
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 280 ? yytranslate[x] : 91)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 36,
+ 37, 2, 2, 38, 40, 35, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 39, 41, 27,
+ 29, 28, 30, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 33, 2, 34, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 31, 2, 32, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
+};
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 4, 6, 11, 13, 18, 20, 22, 24,
+ 25, 27, 28, 31, 33, 35, 37, 39, 41, 43,
+ 47, 52, 57, 61, 65, 70, 75, 82, 89, 96,
+ 103, 110, 111, 114, 117, 122, 123, 125, 127, 131,
+ 134, 138, 144, 149, 151, 152, 156, 157, 159, 161,
+ 165, 170, 173, 180, 181, 184, 186, 190, 192, 197,
+ 199, 203, 204, 207, 209, 213, 217, 218, 220, 222,
+ 223, 225, 227, 229, 230, 234, 235, 236, 243, 247,
+ 249, 251, 254, 256, 257, 258, 267, 268, 275, 277,
+ 279, 281, 283, 288, 290, 294, 295, 300, 305, 308,
+ 310, 313
+};
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
+static const short yyrhs[] = { 23,
+ 0, 5, 0, 4, 0, 6, 27, 22, 28, 0,
+ 3, 0, 7, 27, 43, 28, 0, 8, 0, 9,
+ 0, 42, 0, 0, 14, 0, 0, 29, 47, 0,
+ 23, 0, 46, 0, 22, 0, 25, 0, 26, 0,
+ 30, 0, 31, 54, 32, 0, 23, 27, 55, 28,
+ 0, 47, 31, 52, 32, 0, 33, 54, 34, 0,
+ 47, 35, 23, 0, 36, 46, 50, 37, 0, 47,
+ 33, 52, 34, 0, 17, 36, 47, 38, 47, 37,
+ 0, 18, 36, 47, 38, 47, 37, 0, 19, 36,
+ 47, 38, 47, 37, 0, 20, 36, 47, 38, 47,
+ 37, 0, 21, 36, 47, 38, 47, 37, 0, 0,
+ 39, 24, 0, 47, 48, 0, 49, 38, 47, 48,
+ 0, 0, 49, 0, 22, 0, 22, 40, 22, 0,
+ 22, 22, 0, 51, 38, 22, 0, 51, 38, 22,
+ 40, 22, 0, 51, 38, 22, 22, 0, 51, 0,
+ 0, 31, 52, 32, 0, 0, 55, 0, 47, 0,
+ 55, 38, 47, 0, 44, 43, 23, 45, 0, 56,
+ 41, 0, 15, 23, 53, 29, 47, 41, 0, 0,
+ 58, 57, 0, 41, 0, 31, 58, 32, 0, 42,
+ 0, 42, 27, 55, 28, 0, 60, 0, 61, 38,
+ 60, 0, 0, 39, 61, 0, 56, 0, 63, 38,
+ 56, 0, 27, 63, 28, 0, 0, 64, 0, 23,
+ 0, 0, 66, 0, 67, 0, 67, 0, 0, 62,
+ 71, 59, 0, 0, 0, 10, 68, 73, 65, 74,
+ 70, 0, 11, 69, 70, 0, 75, 0, 76, 0,
+ 77, 76, 0, 23, 0, 0, 0, 12, 78, 80,
+ 65, 81, 31, 77, 32, 0, 0, 13, 23, 83,
+ 39, 60, 41, 0, 72, 0, 75, 0, 79, 0,
+ 82, 0, 23, 53, 29, 47, 0, 85, 0, 86,
+ 38, 85, 0, 0, 15, 88, 86, 16, 0, 87,
+ 31, 89, 32, 0, 87, 84, 0, 84, 0, 89,
+ 84, 0, 89, 0
+};
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
#endif
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
- int i;
-#endif
-{
- return i;
-}
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 246, 268, 270, 272, 274, 276, 278, 280, 282, 286,
+ 286, 288, 288, 290, 313, 315, 317, 320, 323, 325,
+ 338, 366, 373, 376, 383, 386, 394, 396, 398, 400,
+ 402, 406, 409, 413, 418, 424, 427, 430, 433, 446,
+ 460, 462, 475, 491, 493, 493, 497, 499, 503, 506,
+ 510, 527, 529, 535, 535, 536, 536, 538, 540, 544,
+ 549, 554, 557, 561, 564, 569, 570, 570, 572, 572,
+ 574, 581, 599, 624, 638, 643, 645, 647, 651, 661,
+ 675, 678, 682, 693, 695, 697, 702, 702, 776, 776,
+ 777, 777, 779, 784, 784, 787, 787, 790, 793, 797,
+ 797, 799
+};
#endif
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","INT","BIT",
+"STRING","BITS","LIST","CODE","DAG","CLASS","DEF","MULTICLASS","DEFM","FIELD",
+"LET","IN","CONCATTOK","SHLTOK","SRATOK","SRLTOK","STRCONCATTOK","INTVAL","ID",
+"VARNAME","STRVAL","CODEFRAGMENT","'<'","'>'","'='","'?'","'{'","'}'","'['",
+"']'","'.'","'('","')'","','","':'","'-'","';'","ClassID","Type","OptPrefix",
+"OptValue","IDValue","Value","OptVarName","DagArgListNE","DagArgList","RBitList",
+"BitList","OptBitList","ValueList","ValueListNE","Declaration","BodyItem","BodyList",
+"Body","SubClassRef","ClassListNE","ClassList","DeclListNE","TemplateArgList",
+"OptTemplateArgList","OptID","ObjectName","ClassName","DefName","ObjectBody",
+"@1","ClassInst","@2","@3","DefInst","MultiClassDef","MultiClassBody","MultiClassName",
+"MultiClassInst","@4","@5","DefMInst","@6","Object","LETItem","LETList","LETCommand",
+"@7","ObjectList","File", NULL
+};
#endif
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 27
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 204
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 41
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 50
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 102
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 188
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 280
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 35, 36, 2, 2, 37, 39, 34, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 38, 40,
- 26, 28, 27, 29, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 32, 2, 33, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 30, 2, 31, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25
+static const short yyr1[] = { 0,
+ 42, 43, 43, 43, 43, 43, 43, 43, 43, 44,
+ 44, 45, 45, 46, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 48, 48, 49, 49, 50, 50, 51, 51, 51,
+ 51, 51, 51, 52, 53, 53, 54, 54, 55, 55,
+ 56, 57, 57, 58, 58, 59, 59, 60, 60, 61,
+ 61, 62, 62, 63, 63, 64, 65, 65, 66, 66,
+ 67, 68, 69, 71, 70, 73, 74, 72, 75, 76,
+ 77, 77, 78, 80, 81, 79, 83, 82, 84, 84,
+ 84, 84, 85, 86, 86, 88, 87, 84, 84, 89,
+ 89, 90
};
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint16 yyprhs[] =
-{
- 0, 0, 3, 5, 7, 9, 14, 16, 21, 23,
- 25, 27, 28, 30, 31, 34, 36, 38, 40, 42,
- 44, 46, 50, 55, 60, 64, 68, 73, 78, 85,
- 92, 99, 106, 107, 110, 113, 118, 119, 121, 123,
- 127, 130, 134, 140, 145, 147, 148, 152, 153, 155,
- 157, 161, 166, 169, 176, 177, 180, 182, 186, 188,
- 193, 195, 199, 200, 203, 205, 209, 213, 214, 216,
- 218, 219, 221, 223, 225, 226, 230, 231, 232, 239,
- 243, 245, 247, 250, 252, 253, 254, 263, 264, 271,
- 273, 275, 277, 279, 284, 286, 290, 291, 296, 301,
- 304, 306, 309
+static const short yyr2[] = { 0,
+ 1, 1, 1, 4, 1, 4, 1, 1, 1, 0,
+ 1, 0, 2, 1, 1, 1, 1, 1, 1, 3,
+ 4, 4, 3, 3, 4, 4, 6, 6, 6, 6,
+ 6, 0, 2, 2, 4, 0, 1, 1, 3, 2,
+ 3, 5, 4, 1, 0, 3, 0, 1, 1, 3,
+ 4, 2, 6, 0, 2, 1, 3, 1, 4, 1,
+ 3, 0, 2, 1, 3, 3, 0, 1, 1, 0,
+ 1, 1, 1, 0, 3, 0, 0, 6, 3, 1,
+ 1, 2, 1, 0, 0, 8, 0, 6, 1, 1,
+ 1, 1, 4, 1, 3, 0, 4, 4, 2, 1,
+ 2, 1
};
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int8 yyrhs[] =
-{
- 90, 0, -1, 22, -1, 5, -1, 4, -1, 6,
- 26, 21, 27, -1, 3, -1, 7, 26, 43, 27,
- -1, 8, -1, 9, -1, 42, -1, -1, 14, -1,
- -1, 28, 47, -1, 22, -1, 46, -1, 21, -1,
- 24, -1, 25, -1, 29, -1, 30, 54, 31, -1,
- 22, 26, 55, 27, -1, 47, 30, 52, 31, -1,
- 32, 54, 33, -1, 47, 34, 22, -1, 35, 46,
- 50, 36, -1, 47, 32, 52, 33, -1, 17, 35,
- 47, 37, 47, 36, -1, 18, 35, 47, 37, 47,
- 36, -1, 19, 35, 47, 37, 47, 36, -1, 20,
- 35, 47, 37, 47, 36, -1, -1, 38, 23, -1,
- 47, 48, -1, 49, 37, 47, 48, -1, -1, 49,
- -1, 21, -1, 21, 39, 21, -1, 21, 21, -1,
- 51, 37, 21, -1, 51, 37, 21, 39, 21, -1,
- 51, 37, 21, 21, -1, 51, -1, -1, 30, 52,
- 31, -1, -1, 55, -1, 47, -1, 55, 37, 47,
- -1, 44, 43, 22, 45, -1, 56, 40, -1, 15,
- 22, 53, 28, 47, 40, -1, -1, 58, 57, -1,
- 40, -1, 30, 58, 31, -1, 42, -1, 42, 26,
- 55, 27, -1, 60, -1, 61, 37, 60, -1, -1,
- 38, 61, -1, 56, -1, 63, 37, 56, -1, 26,
- 63, 27, -1, -1, 64, -1, 22,