Coverage Report

Created: 2018-09-23 22:08

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/AST/CommentBriefParser.h
Line
Count
Source
1
//===--- CommentBriefParser.h - Dumb comment parser -------------*- C++ -*-===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
//  This file defines a very simple Doxygen comment parser.
11
//
12
//===----------------------------------------------------------------------===//
13
14
15
#ifndef LLVM_CLANG_AST_COMMENTBRIEFPARSER_H
16
#define LLVM_CLANG_AST_COMMENTBRIEFPARSER_H
17
18
#include "clang/AST/CommentLexer.h"
19
20
namespace clang {
21
namespace comments {
22
23
/// A very simple comment parser that extracts "a brief description".
24
///
25
/// Due to a variety of comment styles, it considers the following as "a brief
26
/// description", in order of priority:
27
/// \li a \or \\short command,
28
/// \li the first paragraph,
29
/// \li a \\result or \\return or \\returns paragraph.
30
class BriefParser {
31
  Lexer &L;
32
33
  const CommandTraits &Traits;
34
35
  /// Current lookahead token.
36
  Token Tok;
37
38
5.81k
  SourceLocation ConsumeToken() {
39
5.81k
    SourceLocation Loc = Tok.getLocation();
40
5.81k
    L.lex(Tok);
41
5.81k
    return Loc;
42
5.81k
  }
43
44
public:
45
  BriefParser(Lexer &L, const CommandTraits &Traits);
46
47
  /// Return the best "brief description" we can find.
48
  std::string Parse();
49
};
50
51
} // end namespace comments
52
} // end namespace clang
53
54
#endif
55