diff options
author | Sean Silva <silvas@purdue.edu> | 2013-01-09 02:11:55 +0000 |
---|---|---|
committer | Sean Silva <silvas@purdue.edu> | 2013-01-09 02:11:55 +0000 |
commit | 9302dcc91458f9d6c8005934f1180ead4427aaba (patch) | |
tree | bfa8cc15eed451a4c661c34e83e846a469282af9 | |
parent | 68ca56285f9b6e82eb16ff8ea02a301f2c489fae (diff) | |
download | external_llvm-9302dcc91458f9d6c8005934f1180ead4427aaba.zip external_llvm-9302dcc91458f9d6c8005934f1180ead4427aaba.tar.gz external_llvm-9302dcc91458f9d6c8005934f1180ead4427aaba.tar.bz2 |
docs: Bring TableGen syntax a bit closer to reality.
It's not just def's but actually a limited subset of Object's that are
allowed inside a multiclass.
Spotted by Joel Jones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171935 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/TableGen/LangRef.rst | 3 | ||||
-rw-r--r-- | lib/TableGen/TGParser.cpp | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/docs/TableGen/LangRef.rst b/docs/TableGen/LangRef.rst index 34098a0..8fdf467 100644 --- a/docs/TableGen/LangRef.rst +++ b/docs/TableGen/LangRef.rst @@ -370,6 +370,7 @@ applied at the end of parsing the base classes of a record. .. productionlist:: MultiClass: "multiclass" `TokIdentifier` [`TemplateArgList`] - : [":" `BaseMultiClassList`] "{" `MultiClassDef`+ "}" + : [":" `BaseMultiClassList`] "{" `MultiClassObject`+ "}" BaseMultiClassList: `MultiClassID` ("," `MultiClassID`)* MultiClassID: `TokIdentifier` + MultiClassObject: `Def` | `Defm` | `Let` | `Foreach` diff --git a/lib/TableGen/TGParser.cpp b/lib/TableGen/TGParser.cpp index 17f0abc..89299d7 100644 --- a/lib/TableGen/TGParser.cpp +++ b/lib/TableGen/TGParser.cpp @@ -2160,7 +2160,12 @@ bool TGParser::ParseTopLevelLet(MultiClass *CurMultiClass) { /// ParseMultiClass - Parse a multiclass definition. /// /// MultiClassInst ::= MULTICLASS ID TemplateArgList? -/// ':' BaseMultiClassList '{' MultiClassDef+ '}' +/// ':' BaseMultiClassList '{' MultiClassObject+ '}' +/// MultiClassObject ::= DefInst +/// MultiClassObject ::= MultiClassInst +/// MultiClassObject ::= DefMInst +/// MultiClassObject ::= LETCommand '{' ObjectList '}' +/// MultiClassObject ::= LETCommand Object /// bool TGParser::ParseMultiClass() { assert(Lex.getCode() == tgtok::MultiClass && "Unexpected token"); |