clang  9.0.0svn
CommentBriefParser.h
Go to the documentation of this file.
1 //===--- CommentBriefParser.h - Dumb comment parser -------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file defines a very simple Doxygen comment parser.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 
14 #ifndef LLVM_CLANG_AST_COMMENTBRIEFPARSER_H
15 #define LLVM_CLANG_AST_COMMENTBRIEFPARSER_H
16 
17 #include "clang/AST/CommentLexer.h"
18 
19 namespace clang {
20 namespace comments {
21 
22 /// A very simple comment parser that extracts "a brief description".
23 ///
24 /// Due to a variety of comment styles, it considers the following as "a brief
25 /// description", in order of priority:
26 /// \li a \or \\short command,
27 /// \li the first paragraph,
28 /// \li a \\result or \\return or \\returns paragraph.
29 class BriefParser {
30  Lexer &L;
31 
32  const CommandTraits &Traits;
33 
34  /// Current lookahead token.
35  Token Tok;
36 
37  SourceLocation ConsumeToken() {
38  SourceLocation Loc = Tok.getLocation();
39  L.lex(Tok);
40  return Loc;
41  }
42 
43 public:
44  BriefParser(Lexer &L, const CommandTraits &Traits);
45 
46  /// Return the best "brief description" we can find.
47  std::string Parse();
48 };
49 
50 } // end namespace comments
51 } // end namespace clang
52 
53 #endif
54 
SourceLocation getLocation() const LLVM_READONLY
Definition: CommentLexer.h:80
This class provides information about commands that can be used in comments.
Encodes a location in the source.
Comment lexer.
Definition: CommentLexer.h:220
Dataflow Directional Tag Classes.
std::string Parse()
Return the best "brief description" we can find.
Comment token.
Definition: CommentLexer.h:55
A very simple comment parser that extracts "a brief description".
BriefParser(Lexer &L, const CommandTraits &Traits)