OSDN Git Service

Use Parse Mode
authorDavid Greene <greened@obbligato.org>
Wed, 19 Oct 2011 13:04:21 +0000 (13:04 +0000)
committerDavid Greene <greened@obbligato.org>
Wed, 19 Oct 2011 13:04:21 +0000 (13:04 +0000)
Augment the value parser to respect the parse mode and not error if an
ID doesn't map to an object and we are in name parsing mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142520 91177308-0d34-0410-b5e6-96231b3b80d8

lib/TableGen/TGParser.cpp

index d864b4f..fdf88d8 100644 (file)
@@ -677,11 +677,18 @@ Init *TGParser::ParseIDValue(Record *CurRec,
     }
   }
 
+  if (Mode == ParseNameMode)
+    return StringInit::get(Name);
+
   if (Record *D = Records.getDef(Name))
     return DefInit::get(D);
 
-  Error(NameLoc, "Variable not defined: '" + Name + "'");
-  return 0;
+  if (Mode == ParseValueMode) {
+    Error(NameLoc, "Variable not defined: '" + Name + "'");
+    return 0;
+  }
+  
+  return StringInit::get(Name);
 }
 
 /// ParseOperation - Parse an operator.  This returns null on error.