diff --git a/support/tools/TableGen/FileLexer.l b/support/tools/TableGen/FileLexer.l index 4f54a520a0c..98370a7fef5 100644 --- a/support/tools/TableGen/FileLexer.l +++ b/support/tools/TableGen/FileLexer.l @@ -166,6 +166,8 @@ in { return IN; } {Identifier} { Filelval.StrVal = new std::string(yytext, yytext+yyleng); return ID; } +${Identifier} { Filelval.StrVal = new std::string(yytext+1, yytext+yyleng); + return VARNAME; } {StringVal} { Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1); return STRVAL; } diff --git a/support/tools/TableGen/FileParser.y b/support/tools/TableGen/FileParser.y index 0ab3e5bde0c..5b983eb06c7 100644 --- a/support/tools/TableGen/FileParser.y +++ b/support/tools/TableGen/FileParser.y @@ -171,7 +171,7 @@ static void addSubClass(Record *SC, const std::vector &TemplateArgs) { %token INT BIT STRING BITS LIST CODE DAG CLASS DEF FIELD LET IN %token INTVAL -%token ID STRVAL CODEFRAGMENT +%token ID VARNAME STRVAL CODEFRAGMENT %type Type %type ClassInst DefInst Object ObjectBody ClassID diff --git a/utils/TableGen/FileLexer.l b/utils/TableGen/FileLexer.l index 4f54a520a0c..98370a7fef5 100644 --- a/utils/TableGen/FileLexer.l +++ b/utils/TableGen/FileLexer.l @@ -166,6 +166,8 @@ in { return IN; } {Identifier} { Filelval.StrVal = new std::string(yytext, yytext+yyleng); return ID; } +${Identifier} { Filelval.StrVal = new std::string(yytext+1, yytext+yyleng); + return VARNAME; } {StringVal} { Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1); return STRVAL; } diff --git a/utils/TableGen/FileParser.y b/utils/TableGen/FileParser.y index 0ab3e5bde0c..5b983eb06c7 100644 --- a/utils/TableGen/FileParser.y +++ b/utils/TableGen/FileParser.y @@ -171,7 +171,7 @@ static void addSubClass(Record *SC, const std::vector &TemplateArgs) { %token INT BIT STRING BITS LIST CODE DAG CLASS DEF FIELD LET IN %token INTVAL -%token ID STRVAL CODEFRAGMENT +%token ID VARNAME STRVAL CODEFRAGMENT %type Type %type ClassInst DefInst Object ObjectBody ClassID