History log of /external/clang/lib/AST/CommentParser.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/AST/CommentParser.cpp
2b429358a9849e2e48520a03065fa385a02dc115 23-Aug-2013 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: fix a bug where a line with whitespace between two paragraphs
would cause us to concatenate these paragraphs into a single one.

The no-op whitespace churn in test/Index test happened because these tests
don't use the correct approach for testing and are more strict than required
for they are testing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
5543169296beeb183b9c9392debc774fcf493eeb 05-May-2013 Dmitri Gribenko <gribozavr@gmail.com> Replace ArrayRef<T>() with None, now that we have an implicit ArrayRef constructor from None

Patch by Robert Wilhelm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
3a5891277e6c545e72551935526fce7337446e88 18-Apr-2013 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: simplify code. As a side effect, this also silences GCC's
-Wunitnitialized warning.

Patch by Rui Ueyama.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
bca9788dbaf5fcf241efdc82ddcda712cb22214e 05-Mar-2013 Fariborz Jahanian <fjahanian@apple.com> doc parsing. Add @method and @callback for
checkings and few other refactoring/cleanup.
// rdar://13094352.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
2a268f2629b49958427e8eb02f2c3d565be71acc 05-Mar-2013 Fariborz Jahanian <fjahanian@apple.com> doc parsing. We want to issue a strong warning when
an @function comment is not followed by a function decl.
// rdar://13094352


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
808383d2d6d58a7c7db85f8c7618fb74d821309f 05-Mar-2013 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: refactor handling of command markers in AST

* Use the term 'command marker', because the semantics of 'backslash' and 'at'
commands are the same. (Talking about 'at commands' makes them look like a
special entity.)

* Sink the flag down into bitfields, reducing the size of AST nodes.

* Change the flag into an enum for clarity. Boolean function parameters are
not very clear.

* Add unittests for new tok::at_command tokens.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
8536fa14ee1048e5e2d62cb3dc11fc640c7dc00d 02-Mar-2013 Fariborz Jahanian <fjahanian@apple.com> Some refactoring in my patch on document
command source fidelity. // rdar://13066276



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
c98e9130bcddd0258c110d30749edd2284087e3d 01-Mar-2013 Fariborz Jahanian <fjahanian@apple.com> comment parsing. Keep the original command format
in AST for source fidelity and use it in diagnostics
to refer to the original format. // rdar://13066276


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
bf8814478fddfa611911bdbd6a53a6614938cc63 09-Feb-2013 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: use CharInfo.h

This also gives us 0.2% speedup on '-fsyntax-only -Wdocumentation' time for
a testcase that consists of all Clang headers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
10442564e1ba3c4dfb184cc4e36beffbee4811c3 26-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: actually check for a block command after "\param x"

This fixes PR15068.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
ca57ccdf480fc002202c74011bdf14687f164a5a 19-Dec-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix PR14591: Windows newlines in doxygen comments cause failed assertion in
TextDiagnostic

Patch by Janusz Chorko.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
eb34db715f1130ad7793fc0cc50c8191c2157c53 19-Dec-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: add a missing 'else'. Found by inspection.

No testcase because we were just building an extra AST node and eventually
throwing it away, so it did not affect correctness.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
36cbbe916f66f08d36492e75809fbf54416a5e8d 18-Nov-2012 Dmitri Gribenko <gribozavr@gmail.com> Documentation parsing: propely handle a lone '\endverbatim' and emit a warning.

We actually used to assert on this.

Thanks to NAKAMURA Takumi for noticing this!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
b0b8a96df25660cbdbf35d23c3ff5887c33f82f9 11-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: handle non-builtin commands correctly. After semantic
analysis registers a command, it becomes a "known" command for the lexer, since
it has an ID. Having this freedom of choice to register a command is a good
thing since BriefParser does not need this.

But the parser should still invoke the correct semantic analysis method
(actOnUnknownCommand) in this case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
e4330a302ac20b41b9800267ebd4b5b01f8553f8 10-Sep-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment AST: TableGen'ize all command lists in CommentCommandTraits.cpp.

Now we have a list of all commands. This is a good thing in itself, but it
also enables us to easily implement typo correction for command names.

With this change we have objects that contain information about each command,
so it makes sense to resolve command name just once during lexing (currently we
store command names as strings and do a linear search every time some property
value is needed). Thus comment token and AST nodes were changed to contain a
command ID -- index into a tables of builtin and registered commands. Unknown
commands are registered during parsing and thus are also uniformly assigned an
ID. Using an ID instead of a StringRef is also a nice memory optimization
since ID is a small integer that fits into a common bitfield in Comment class.

This change implies that to get any information about a command (even a command
name) we need a CommandTraits object to resolve the command ID to CommandInfo*.
Currently a fresh temporary CommandTraits object is created whenever it is
needed since it does not have any state. But with this change it has state --
new commands can be registered, so a CommandTraits object was added to
ASTContext.

Also, in libclang CXComment has to be expanded to include a CXTranslationUnit
so that all functions working on comment AST nodes can get a CommandTraits
object. This breaks binary compatibility of CXComment APIs.

Now clang_FullComment_getAsXML(CXTranslationUnit TU, CXComment CXC) doesn't
need TU parameter anymore, so it was removed. This is a source-incompatible
change for this C API.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
aa58081902ad31927df02e8537d972eabe29d6df 09-Aug-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: extract TableGen'able pieces into new CommandTraits class.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
8a90393e7ca61d9753cb9a2f2bc64b2669393ffb 07-Aug-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: fix crash on \tparam followed immediately by another block
command, for example: \tparam\brief.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
7d9b51107999c1c1fada7319c4687fe570eb2c0b 06-Aug-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parser and sema: remove useless return values


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
96b098674908eaa59a9128f3305cda6fbbdad563 01-Aug-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: add support for \tparam command on all levels.

The only caveat is renumbering CXCommentKind enum for aesthetic reasons -- this
breaks libclang binary compatibility, but should not be a problem since API is
so new.

This also fixes PR13372 as a side-effect.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
e5deb79d0e7f1c81fdc9ae89ed5a4edc9a589581 30-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parser: don't crash on a completely empty \param followed by a block
command


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
0c43a927d97c39c7d6de6a055af1d8f101d5a058 24-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: allow newlines between \param, direction specification (e.g.,
[in]), parameter name and description paragraph.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
db13f04dd0579874932bdb958647d0903f632dd4 24-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: couple TextTokenRetokenizer and comment parser together to
remove one of the two variable-length lookahead buffers. Now retokenizer will
ask for more tokens when it needs them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
c4b0f9b851ca59e61b802d58792ea3600fd9a9d4 24-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Move TextTokenRetokenizer from CommentLexer.h to CommentParser.cpp since it is
an implementation detail of the parser.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
fd939162ff99a0084ed22a08dd37c149a0883a2b 24-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: retokenized text tokens are now pushed back in correct (not
reverse) order


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
9f08f49929324ec6863e81b22a43fb2e8575b433 20-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Fix PR13411: Comment parsing: failed assertion on unterminated verbatim block.

The assertion was wrong in case we have a verbatim block without a closing
command.

Also add tests for closing command name in a verbatim block, since now it can
be empty in such cases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
94572c32af458c97f6f5a9fafea44e84baa656bf 18-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> This fits into 80 columns without wrapping.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
3f38bf2d441fac379c427f86153fbb0cb41256c6 13-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Comment parsing: repaint the bikesched: rename 'HTML open tags' to 'HTML start tags' and 'HTML close tags' to 'HTML end tags' according to HTML spec.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
a5ef44ff5d93a3be6ca67782828157a71894cf0c 11-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Enable comment parsing and semantic analysis to emit diagnostics. A few
diagnostics implemented -- see testcases.

I created a new TableGen file for comment diagnostics,
DiagnosticCommentKinds.td, because comment diagnostics don't logically
fit into AST diagnostics file. But I don't feel strongly about it.

This also implements support for self-closing HTML tags in comment
lexer and parser (for example, <br />).

In order to issue precise diagnostics CommentSema needs to know the
declaration the comment is attached to. There is no easy way to find a decl by
comment, so we match comments and decls in lockstep: after parsing one
declgroup we check if we have any new, not yet attached comments. If we do --
then we do the usual comment-finding process.

It is interesting that this automatically handles trailing comments.
We pick up not only comments that precede the declaration, but also
comments that *follow* the declaration -- thanks to the lookahead in
the lexer: after parsing the declgroup we've consumed the semicolon
and looked ahead through comments.

Added -Wdocumentation-html flag for semantic HTML errors to allow the user to
disable only HTML warnings (but not HTML parse errors, which we emit as
warnings in -Wdocumentation).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
4d48b5c1d58c381e6e0c719701ef433b530e0e1a 06-Jul-2012 Matt Beaumont-Gay <matthewbg@google.com> Sprinkle llvm_unreachable around to placate GCC's -Wreturn-type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
814e219fc6d5faeb48e4fd5375843346f2d4a7a7 06-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Stop using new[] on llvm::BumpPtrAllocator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
ea7eb071166c69e11bfda4f1d89d5c2b6bbcdca3 06-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> CommentParser.cpp: remove unused variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp
8d3ba23f2d9e6c87794d059412a0808c9cbacb25 06-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Implement AST classes for comments, a real parser for Doxygen comments and a
very simple semantic analysis that just builds the AST; minor changes for lexer
to pick up source locations I didn't think about before.

Comments AST is modelled along the ideas of HTML AST: block and inline content.

* Block content is a paragraph or a command that has a paragraph as an argument
or verbatim command.
* Inline content is placed within some block. Inline content includes plain
text, inline commands and HTML as tag soup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/AST/CommentParser.cpp