[llvm-commits] CVS: llvm/utils/TableGen/FileLexer.cpp.cvs FileLexer.l.cvs
Chris Lattner
lattner at cs.uiuc.edu
Thu Mar 2 17:47:49 PST 2006
Changes in directory llvm/utils/TableGen:
FileLexer.cpp.cvs updated: 1.2 -> 1.3
FileLexer.l.cvs updated: 1.1 -> 1.2
---
Log message:
Regenerate
---
Diffs of the changes: (+62 -54)
FileLexer.cpp.cvs | 98 ++++++++++++++++++++++++++++--------------------------
FileLexer.l.cvs | 18 ++++++---
2 files changed, 62 insertions(+), 54 deletions(-)
Index: llvm/utils/TableGen/FileLexer.cpp.cvs
diff -u llvm/utils/TableGen/FileLexer.cpp.cvs:1.2 llvm/utils/TableGen/FileLexer.cpp.cvs:1.3
--- llvm/utils/TableGen/FileLexer.cpp.cvs:1.2 Wed Feb 15 01:24:01 2006
+++ llvm/utils/TableGen/FileLexer.cpp.cvs Thu Mar 2 19:47:37 2006
@@ -21,7 +21,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /var/cvs/llvm/llvm/utils/TableGen/FileLexer.cpp.cvs,v 1.2 2006/02/15 07:24:01 lattner Exp $
+ * $Header: /var/cvs/llvm/llvm/utils/TableGen/FileLexer.cpp.cvs,v 1.3 2006/03/03 01:47:37 lattner Exp $
*/
#define FLEX_SCANNER
@@ -489,7 +489,7 @@
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "/Users/sabre/cvs/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++ -*-===//
//
@@ -507,7 +507,7 @@
#define YY_NEVER_INTERACTIVE 1
#define comment 1
-#line 30 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 30 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
#include "Record.h"
typedef std::pair<llvm::Record*, std::vector<llvm::Init*>*> SubClassRefTy;
#include "FileParser.h"
@@ -517,7 +517,7 @@
namespace llvm {
// Global variable recording the location of the include directory
-std::string IncludeDirectory;
+std::vector<std::string> IncludeDirectories;
/// ParseInt - This has to handle the special case of binary numbers 0b0101
///
@@ -555,7 +555,8 @@
/// ParseFile - this function begins the parsing of the specified tablegen file.
///
-void ParseFile(const std::string &Filename, const std::string & IncludeDir) {
+void ParseFile(const std::string &Filename,
+ const std::vector<std::string> &IncludeDirs) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
@@ -571,7 +572,7 @@
// Record the location of the include directory so that the lexer can find
// it later.
- IncludeDirectory = IncludeDir;
+ IncludeDirectories = IncludeDirs;
Filein = F;
Filelineno = 1;
@@ -605,10 +606,13 @@
// If we couldn't find the file in the current directory, look for it in
// the include directories.
//
- // NOTE: Right now, there is only one directory. We need to eventually add
- // support for more.
- std::string NextFilename = IncludeDirectory + "/" + Filename;
- yyin = fopen(NextFilename.c_str(), "r");
+ std::string NextFilename;
+ for (unsigned i = 0, e = IncludeDirectories.size(); i != e; ++i) {
+ NextFilename = IncludeDirectories[i] + "/" + Filename;
+ if (yyin = fopen(NextFilename.c_str(), "r"))
+ break;
+ }
+
if (yyin == 0) {
err() << "Could not find include file '" << Filename << "'!\n";
exit(1);
@@ -644,7 +648,7 @@
using namespace llvm;
-#line 648 "Lexer.cpp"
+#line 652 "Lexer.cpp"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -795,10 +799,10 @@
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 176 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 180 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-#line 802 "Lexer.cpp"
+#line 806 "Lexer.cpp"
if ( yy_init )
{
@@ -891,168 +895,168 @@
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 178 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 182 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ /* Ignore comments */ }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 180 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 184 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ HandleInclude(yytext); }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 181 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 185 "/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 184 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 188 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return INT; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 185 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 189 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return BIT; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 186 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 190 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return BITS; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 187 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 191 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return STRING; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 188 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 192 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return LIST; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 189 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 193 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return CODE; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 190 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 194 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return DAG; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 192 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 196 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return CLASS; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 193 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 197 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return DEF; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 194 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 198 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return FIELD; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 195 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 199 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return LET; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 196 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 200 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return IN; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 198 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 202 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SRATOK; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 199 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 203 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SRLTOK; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 200 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 204 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return SHLTOK; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 203 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 207 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext, yytext+yyleng);
return ID; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 205 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 209 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng);
return VARNAME; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 208 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 212 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1);
return STRVAL; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 211 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 215 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ Filelval.IntVal = ParseInt(Filetext); return INTVAL; }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 213 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 217 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 216 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 220 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ BEGIN(comment); CommentDepth++; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 217 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 221 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat anything that's not a '*' or '/' */
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 218 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 222 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat up '*'s not followed by '/'s */
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 219 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 223 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ ++CommentDepth; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 220 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 224 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{} /* eat up /'s not followed by *'s */
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 221 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 225 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ if (!--CommentDepth) { BEGIN(INITIAL); } }
YY_BREAK
case YY_STATE_EOF(comment):
-#line 222 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 226 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ err() << "Unterminated comment!\n"; exit(1); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 224 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 228 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
{ return Filetext[0]; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 226 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 230 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1056 "Lexer.cpp"
+#line 1060 "Lexer.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1936,6 +1940,6 @@
return 0;
}
#endif
-#line 226 "/Users/sabre/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 230 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
Index: llvm/utils/TableGen/FileLexer.l.cvs
diff -u llvm/utils/TableGen/FileLexer.l.cvs:1.1 llvm/utils/TableGen/FileLexer.l.cvs:1.2
--- llvm/utils/TableGen/FileLexer.l.cvs:1.1 Mon Feb 13 23:13:13 2006
+++ llvm/utils/TableGen/FileLexer.l.cvs Thu Mar 2 19:47:37 2006
@@ -36,7 +36,7 @@
namespace llvm {
// Global variable recording the location of the include directory
-std::string IncludeDirectory;
+std::vector<std::string> IncludeDirectories;
/// ParseInt - This has to handle the special case of binary numbers 0b0101
///
@@ -74,7 +74,8 @@
/// ParseFile - this function begins the parsing of the specified tablegen file.
///
-void ParseFile(const std::string &Filename, const std::string & IncludeDir) {
+void ParseFile(const std::string &Filename,
+ const std::vector<std::string> &IncludeDirs) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
@@ -90,7 +91,7 @@
// Record the location of the include directory so that the lexer can find
// it later.
- IncludeDirectory = IncludeDir;
+ IncludeDirectories = IncludeDirs;
Filein = F;
Filelineno = 1;
@@ -124,10 +125,13 @@
// If we couldn't find the file in the current directory, look for it in
// the include directories.
//
- // NOTE: Right now, there is only one directory. We need to eventually add
- // support for more.
- std::string NextFilename = IncludeDirectory + "/" + Filename;
- yyin = fopen(NextFilename.c_str(), "r");
+ std::string NextFilename;
+ for (unsigned i = 0, e = IncludeDirectories.size(); i != e; ++i) {
+ NextFilename = IncludeDirectories[i] + "/" + Filename;
+ if (yyin = fopen(NextFilename.c_str(), "r"))
+ break;
+ }
+
if (yyin == 0) {
err() << "Could not find include file '" << Filename << "'!\n";
exit(1);
More information about the llvm-commits
mailing list