[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