From: Nico Weber Date: Mon, 7 Jul 2014 00:50:39 +0000 (+0000) Subject: Update internals manual on how to add AST nodes. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d952acc1973f6b5504e626767e3c60a4c7c89721;p=platform%2Fupstream%2Fllvm.git Update internals manual on how to add AST nodes. StmtDumper.cpp is called ASTDumper.cpp these days, and usually works well for new AST nodes without changes. There's now DataRecursiveASTVisitor in addition to RecursiveASTVisitor, and serialization wasn't mentioned. llvm-svn: 212426 --- diff --git a/clang/docs/InternalsManual.rst b/clang/docs/InternalsManual.rst index 5830a7e..8e047db 100644 --- a/clang/docs/InternalsManual.rst +++ b/clang/docs/InternalsManual.rst @@ -1852,13 +1852,14 @@ are similar. * Make sure that ``children()`` visits all of the subexpressions. This is important for a number of features (e.g., IDE support, C++ variadic templates). If you have sub-types, you'll also need to visit those - sub-types in the ``RecursiveASTVisitor``. - * Add printing support (``StmtPrinter.cpp``) and dumping support - (``StmtDumper.cpp``) for your expression. + sub-types in ``RecursiveASTVisitor`` and ``DataRecursiveASTVisitor``. + * Add printing support (``StmtPrinter.cpp``) for your expression. * Add profiling support (``StmtProfile.cpp``) for your AST node, noting the distinguishing (non-source location) characteristics of an instance of your expression. Omitting this step will lead to hard-to-diagnose failures regarding matching of template declarations. + * Add serialization support (``ASTReaderStmt.cpp``, ``ASTWriterStmt.cpp``) + for your AST node. #. Teach semantic analysis to build your AST node. At this point, you can wire up your ``Sema::BuildXXX`` function to actually create your AST. A few