Implement test/Feature/escaped_label.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18741 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-12-10 05:27:29 +00:00
parent a44f445d2c
commit c6c9772823

View File

@ -139,6 +139,7 @@ VarID %[-a-zA-Z$._][-a-zA-Z$._0-9]*
/* Label identifiers end with a colon */
Label [-a-zA-Z$._0-9]+:
QuoteLabel \"[^\"]*\":
/* Quoted names can contain any character except " and \ */
StringConstant \"[^\"]*\"
@ -269,6 +270,12 @@ getelementptr { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
llvmAsmlval.StrVal = strdup(yytext);
return LABELSTR;
}
{QuoteLabel} {
yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
UnEscapeLexed(yytext+1);
llvmAsmlval.StrVal = strdup(yytext+1);
return LABELSTR;
}
{StringConstant} { // Note that we cannot unescape a string constant here! The
// string constant might contain a \00 which would not be