mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
38002bb037
Remove all grammar conflicts from assembly parsing. This change involves: 1. Making the "type" keyword not a primitive type (removes several reduce/reduce conflicts) 2. Being more specific about which linkage types are allowed for functions and global variables. In particular "appending" can no longer be specified for a function. A differentiation was made between the various internal and external linkage types. 3. Introduced the "define" keyword which is now required when defining a function. This disambiguates several cases where a named function return type could get confused with the definition of a new type. Using the keyword eliminates all shift/reduce conflicts and the remaining reduce/reduce conflicts. These changes are necessary to implement the function parameter attributes that will be introduced soon. Adding the function parameter attributes in the presence of the shift/reduce and reduce/reduce conflicts led to severe ambiguities that caused the parser to report syntax errors that needed to be resolved. This patch resolves them. llvm-svn: 32770 |
||
---|---|---|
.. | ||
.cvsignore | ||
Lexer.cpp.cvs | ||
Lexer.l | ||
Lexer.l.cvs | ||
llvmAsmParser.cpp.cvs | ||
llvmAsmParser.h.cvs | ||
llvmAsmParser.y | ||
llvmAsmParser.y.cvs | ||
Makefile | ||
Parser.cpp | ||
ParserInternals.h |