diff options
author | dim <dim@FreeBSD.org> | 2012-12-02 13:20:44 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-12-02 13:20:44 +0000 |
commit | 056abd2059c65a3e908193aeae16fad98017437c (patch) | |
tree | 2732d02d7d51218d6eed98ac7fcfc5b8794896b5 /utils/TableGen/TableGen.cpp | |
parent | cc73504950eb7b5dff2dded9bedd67bc36d64641 (diff) | |
download | FreeBSD-src-056abd2059c65a3e908193aeae16fad98017437c.zip FreeBSD-src-056abd2059c65a3e908193aeae16fad98017437c.tar.gz |
Vendor import of clang release_32 branch r168974 (effectively, 3.2 RC2):
http://llvm.org/svn/llvm-project/cfe/branches/release_32@168974
Diffstat (limited to 'utils/TableGen/TableGen.cpp')
-rw-r--r-- | utils/TableGen/TableGen.cpp | 175 |
1 files changed, 97 insertions, 78 deletions
diff --git a/utils/TableGen/TableGen.cpp b/utils/TableGen/TableGen.cpp index d3408ed..41471a4 100644 --- a/utils/TableGen/TableGen.cpp +++ b/utils/TableGen/TableGen.cpp @@ -19,7 +19,6 @@ #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Main.h" #include "llvm/TableGen/Record.h" -#include "llvm/TableGen/TableGenAction.h" using namespace llvm; using namespace clang; @@ -42,6 +41,9 @@ enum ActionType { GenClangDeclNodes, GenClangStmtNodes, GenClangSACheckers, + GenClangCommentHTMLTags, + GenClangCommentHTMLTagsProperties, + GenClangCommentCommandInfo, GenOptParserDefs, GenOptParserImpl, GenArmNeon, GenArmNeonSema, @@ -95,6 +97,18 @@ namespace { "Generate Clang AST statement nodes"), clEnumValN(GenClangSACheckers, "gen-clang-sa-checkers", "Generate Clang Static Analyzer checkers"), + clEnumValN(GenClangCommentHTMLTags, + "gen-clang-comment-html-tags", + "Generate efficient matchers for HTML tag " + "names that are used in documentation comments"), + clEnumValN(GenClangCommentHTMLTagsProperties, + "gen-clang-comment-html-tags-properties", + "Generate efficient matchers for HTML tag " + "properties"), + clEnumValN(GenClangCommentCommandInfo, + "gen-clang-comment-command-info", + "Generate list of commands that are used in " + "documentation comments"), clEnumValN(GenArmNeon, "gen-arm-neon", "Generate arm_neon.h for clang"), clEnumValN(GenArmNeonSema, "gen-arm-neon-sema", @@ -108,82 +122,88 @@ namespace { cl::desc("Only use warnings from specified component"), cl::value_desc("component"), cl::Hidden); -class ClangTableGenAction : public TableGenAction { -public: - bool operator()(raw_ostream &OS, RecordKeeper &Records) { - switch (Action) { - case GenClangAttrClasses: - EmitClangAttrClass(Records, OS); - break; - case GenClangAttrImpl: - EmitClangAttrImpl(Records, OS); - break; - case GenClangAttrList: - EmitClangAttrList(Records, OS); - break; - case GenClangAttrPCHRead: - EmitClangAttrPCHRead(Records, OS); - break; - case GenClangAttrPCHWrite: - EmitClangAttrPCHWrite(Records, OS); - break; - case GenClangAttrSpellingList: - EmitClangAttrSpellingList(Records, OS); - break; - case GenClangAttrLateParsedList: - EmitClangAttrLateParsedList(Records, OS); - break; - case GenClangAttrTemplateInstantiate: - EmitClangAttrTemplateInstantiate(Records, OS); - break; - case GenClangAttrParsedAttrList: - EmitClangAttrParsedAttrList(Records, OS); - break; - case GenClangAttrParsedAttrKinds: - EmitClangAttrParsedAttrKinds(Records, OS); - break; - case GenClangDiagsDefs: - EmitClangDiagsDefs(Records, OS, ClangComponent); - break; - case GenClangDiagGroups: - EmitClangDiagGroups(Records, OS); - break; - case GenClangDiagsIndexName: - EmitClangDiagsIndexName(Records, OS); - break; - case GenClangCommentNodes: - EmitClangASTNodes(Records, OS, "Comment", ""); - break; - case GenClangDeclNodes: - EmitClangASTNodes(Records, OS, "Decl", "Decl"); - EmitClangDeclContext(Records, OS); - break; - case GenClangStmtNodes: - EmitClangASTNodes(Records, OS, "Stmt", ""); - break; - case GenClangSACheckers: - EmitClangSACheckers(Records, OS); - break; - case GenOptParserDefs: - EmitOptParser(Records, OS, true); - break; - case GenOptParserImpl: - EmitOptParser(Records, OS, false); - break; - case GenArmNeon: - EmitNeon(Records, OS); - break; - case GenArmNeonSema: - EmitNeonSema(Records, OS); - break; - case GenArmNeonTest: - EmitNeonTest(Records, OS); - break; - } - - return false; +bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) { + switch (Action) { + case GenClangAttrClasses: + EmitClangAttrClass(Records, OS); + break; + case GenClangAttrImpl: + EmitClangAttrImpl(Records, OS); + break; + case GenClangAttrList: + EmitClangAttrList(Records, OS); + break; + case GenClangAttrPCHRead: + EmitClangAttrPCHRead(Records, OS); + break; + case GenClangAttrPCHWrite: + EmitClangAttrPCHWrite(Records, OS); + break; + case GenClangAttrSpellingList: + EmitClangAttrSpellingList(Records, OS); + break; + case GenClangAttrLateParsedList: + EmitClangAttrLateParsedList(Records, OS); + break; + case GenClangAttrTemplateInstantiate: + EmitClangAttrTemplateInstantiate(Records, OS); + break; + case GenClangAttrParsedAttrList: + EmitClangAttrParsedAttrList(Records, OS); + break; + case GenClangAttrParsedAttrKinds: + EmitClangAttrParsedAttrKinds(Records, OS); + break; + case GenClangDiagsDefs: + EmitClangDiagsDefs(Records, OS, ClangComponent); + break; + case GenClangDiagGroups: + EmitClangDiagGroups(Records, OS); + break; + case GenClangDiagsIndexName: + EmitClangDiagsIndexName(Records, OS); + break; + case GenClangCommentNodes: + EmitClangASTNodes(Records, OS, "Comment", ""); + break; + case GenClangDeclNodes: + EmitClangASTNodes(Records, OS, "Decl", "Decl"); + EmitClangDeclContext(Records, OS); + break; + case GenClangStmtNodes: + EmitClangASTNodes(Records, OS, "Stmt", ""); + break; + case GenClangSACheckers: + EmitClangSACheckers(Records, OS); + break; + case GenClangCommentHTMLTags: + EmitClangCommentHTMLTags(Records, OS); + break; + case GenClangCommentHTMLTagsProperties: + EmitClangCommentHTMLTagsProperties(Records, OS); + break; + case GenClangCommentCommandInfo: + EmitClangCommentCommandInfo(Records, OS); + break; + case GenOptParserDefs: + EmitOptParser(Records, OS, true); + break; + case GenOptParserImpl: + EmitOptParser(Records, OS, false); + break; + case GenArmNeon: + EmitNeon(Records, OS); + break; + case GenArmNeonSema: + EmitNeonSema(Records, OS); + break; + case GenArmNeonTest: + EmitNeonTest(Records, OS); + break; } -}; + + return false; +} } int main(int argc, char **argv) { @@ -191,6 +211,5 @@ int main(int argc, char **argv) { PrettyStackTraceProgram X(argc, argv); cl::ParseCommandLineOptions(argc, argv); - ClangTableGenAction Action; - return TableGenMain(argv[0], Action); + return TableGenMain(argv[0], &ClangTableGenMain); } |