Skip to content

Commit

Permalink
Accept double quoted strings everwhere we accept a %ABC variable name.
Browse files Browse the repository at this point in the history
This introduces one more innoculous shift-reduce conflict, but will REALLY
help the type names generated by the C++ frontend, which wants to use all
kinds of crazy stuff.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8050 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
lattner committed Aug 22, 2003
1 parent 24b8a5d commit 6c23f57
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions lib/AsmParser/llvmAsmParser.y
Original file line number Diff line number Diff line change
Expand Up @@ -698,8 +698,8 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) {
%token <PrimType> VOID BOOL SBYTE UBYTE SHORT USHORT INT UINT LONG ULONG
%token <PrimType> FLOAT DOUBLE TYPE LABEL

%token <StrVal> VAR_ID LABELSTR STRINGCONSTANT
%type <StrVal> OptVAR_ID OptAssign FuncName
%token <StrVal> VAR_ID LABELSTR STRINGCONSTANT
%type <StrVal> Name OptName OptAssign


%token IMPLEMENTATION ZEROINITIALIZER TRUE FALSE BEGINTOK ENDTOK
Expand Down Expand Up @@ -728,7 +728,6 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) {

// Handle constant integer size restriction and conversion...
//

INTVAL : SINTVAL;
INTVAL : UINTVAL {
if ($1 > (uint32_t)INT32_MAX) // Outside of my range!
Expand Down Expand Up @@ -762,7 +761,7 @@ IntType : SIntType | UIntType;
FPType : FLOAT | DOUBLE;

// OptAssign - Value producing statements have an optional assignment component
OptAssign : VAR_ID '=' {
OptAssign : Name '=' {
$$ = $1;
}
| /*empty*/ {
Expand Down Expand Up @@ -1246,9 +1245,10 @@ TargetDefinition : ENDIAN '=' BigOrLittle {
// Rules to match Function Headers
//===----------------------------------------------------------------------===//

OptVAR_ID : VAR_ID | /*empty*/ { $$ = 0; };
Name : VAR_ID | STRINGCONSTANT;
OptName : Name | /*empty*/ { $$ = 0; };

ArgVal : Types OptVAR_ID {
ArgVal : Types OptName {
if (*$1 == Type::VoidTy)
ThrowException("void typed arguments are invalid!");
$$ = new std::pair<PATypeHolder*, char*>($1, $2);
Expand Down Expand Up @@ -1281,9 +1281,7 @@ ArgList : ArgListH {
$$ = 0;
};

FuncName : VAR_ID | STRINGCONSTANT;

FunctionHeaderH : TypesV FuncName '(' ArgList ')' {
FunctionHeaderH : TypesV Name '(' ArgList ')' {
UnEscapeLexed($2);
std::string FunctionName($2);

Expand Down Expand Up @@ -1409,7 +1407,7 @@ ConstValueRef : ESINT64VAL { // A reference to a direct constant
SymbolicValueRef : INTVAL { // Is it an integer reference...?
$$ = ValID::create($1);
}
| VAR_ID { // Is it a named reference...?
| Name { // Is it a named reference...?
$$ = ValID::create($1);
};

Expand Down

0 comments on commit 6c23f57

Please sign in to comment.