[cfe-commits] r172071 - in /cfe/trunk/lib/Format: Format.cpp UnwrappedLineParser.cpp UnwrappedLineParser.h
Nico Weber
thakis at chromium.org
Thu Jan 10 11:15:50 PST 2013
Also, running unittests/Format/Release+Asserts/FormatTests now prints
several "error:" lines. The tests all still pass, but it's somewhat
confusing. Could you maybe not print these in tests unless requested?
On Thu, Jan 10, 2013 at 10:59 AM, Rafael EspĂndola
<rafael.espindola at gmail.com> wrote:
> Test?
>
> On Jan 10, 2013 10:07 AM, "Alexander Kornienko" <alexfh at google.com> wrote:
>>
>> Author: alexfh
>> Date: Thu Jan 10 09:05:09 2013
>> New Revision: 172071
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=172071&view=rev
>> Log:
>> Basic support for diagnostics.
>>
>> Summary: Uses DiagnosticsEngine to output diagnostics.
>>
>> Reviewers: djasper, klimek
>>
>> Reviewed By: djasper
>>
>> CC: cfe-commits
>>
>> Differential Revision: http://llvm-reviews.chandlerc.com/D278
>>
>> Modified:
>> cfe/trunk/lib/Format/Format.cpp
>> cfe/trunk/lib/Format/UnwrappedLineParser.cpp
>> cfe/trunk/lib/Format/UnwrappedLineParser.h
>>
>> Modified: cfe/trunk/lib/Format/Format.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=172071&r1=172070&r2=172071&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/Format.cpp (original)
>> +++ cfe/trunk/lib/Format/Format.cpp Thu Jan 10 09:05:09 2013
>> @@ -18,8 +18,10 @@
>>
>> #include "clang/Format/Format.h"
>> #include "UnwrappedLineParser.h"
>> +#include "clang/Basic/Diagnostic.h"
>> #include "clang/Basic/OperatorPrecedence.h"
>> #include "clang/Basic/SourceManager.h"
>> +#include "clang/Frontend/TextDiagnosticPrinter.h"
>> #include "clang/Lex/Lexer.h"
>> #include <string>
>>
>> @@ -1222,10 +1224,11 @@
>>
>> class Formatter : public UnwrappedLineConsumer {
>> public:
>> - Formatter(const FormatStyle &Style, Lexer &Lex, SourceManager
>> &SourceMgr,
>> + Formatter(clang::DiagnosticsEngine &Diag, const FormatStyle &Style,
>> + Lexer &Lex, SourceManager &SourceMgr,
>> const std::vector<CharSourceRange> &Ranges)
>> - : Style(Style), Lex(Lex), SourceMgr(SourceMgr), Ranges(Ranges),
>> - StructuralError(false) {
>> + : Diag(Diag), Style(Style), Lex(Lex), SourceMgr(SourceMgr),
>> + Ranges(Ranges), StructuralError(false) {
>> }
>>
>> virtual ~Formatter() {
>> @@ -1233,7 +1236,7 @@
>>
>> tooling::Replacements format() {
>> LexerBasedFormatTokenSource Tokens(Lex, SourceMgr);
>> - UnwrappedLineParser Parser(Style, Tokens, *this);
>> + UnwrappedLineParser Parser(Diag, Style, Tokens, *this);
>> StructuralError = Parser.parse();
>> unsigned PreviousEndOfLineColumn = 0;
>> for (std::vector<UnwrappedLine>::iterator I = UnwrappedLines.begin(),
>> @@ -1284,6 +1287,7 @@
>> 1;
>> }
>>
>> + clang::DiagnosticsEngine &Diag;
>> FormatStyle Style;
>> Lexer &Lex;
>> SourceManager &SourceMgr;
>> @@ -1296,7 +1300,14 @@
>> tooling::Replacements reformat(const FormatStyle &Style, Lexer &Lex,
>> SourceManager &SourceMgr,
>> std::vector<CharSourceRange> Ranges) {
>> - Formatter formatter(Style, Lex, SourceMgr, Ranges);
>> + IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new
>> DiagnosticOptions();
>> + TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), &*DiagOpts);
>> + DiagnosticPrinter.BeginSourceFile(Lex.getLangOpts(), Lex.getPP());
>> + DiagnosticsEngine Diagnostics(
>> + llvm::IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()),
>> &*DiagOpts,
>> + &DiagnosticPrinter, false);
>> + Diagnostics.setSourceManager(&SourceMgr);
>> + Formatter formatter(Diagnostics, Style, Lex, SourceMgr, Ranges);
>> return formatter.format();
>> }
>>
>>
>> Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=172071&r1=172070&r2=172071&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original)
>> +++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Thu Jan 10 09:05:09 2013
>> @@ -17,6 +17,7 @@
>>
>> //===----------------------------------------------------------------------===//
>>
>> #include "UnwrappedLineParser.h"
>> +#include "clang/Basic/Diagnostic.h"
>> #include "llvm/Support/raw_ostream.h"
>>
>> // Uncomment to get debug output from the UnwrappedLineParser.
>> @@ -110,12 +111,12 @@
>> bool PreBlockRootTokenInitialized;
>> };
>>
>> -UnwrappedLineParser::UnwrappedLineParser(const FormatStyle &Style,
>> - FormatTokenSource &Tokens,
>> - UnwrappedLineConsumer &Callback)
>> +UnwrappedLineParser::UnwrappedLineParser(
>> + clang::DiagnosticsEngine &Diag, const FormatStyle &Style,
>> + FormatTokenSource &Tokens, UnwrappedLineConsumer &Callback)
>> : Line(new UnwrappedLine), RootTokenInitialized(false),
>> - LastInCurrentLine(NULL), MustBreakBeforeNextToken(false),
>> Style(Style),
>> - Tokens(&Tokens), Callback(Callback) {
>> + LastInCurrentLine(NULL), MustBreakBeforeNextToken(false),
>> Diag(Diag),
>> + Style(Style), Tokens(&Tokens), Callback(Callback) {
>> }
>>
>> bool UnwrappedLineParser::parse() {
>> @@ -149,7 +150,9 @@
>> if (HasOpeningBrace) {
>> return false;
>> } else {
>> - // Stray '}' is an error.
>> + Diag.Report(FormatTok.Tok.getLocation(),
>> + Diag.getCustomDiagID(clang::DiagnosticsEngine::Error,
>> + "Stray '}' found"));
>> Error = true;
>> nextToken();
>> addUnwrappedLine();
>>
>> Modified: cfe/trunk/lib/Format/UnwrappedLineParser.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.h?rev=172071&r1=172070&r2=172071&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/UnwrappedLineParser.h (original)
>> +++ cfe/trunk/lib/Format/UnwrappedLineParser.h Thu Jan 10 09:05:09 2013
>> @@ -27,6 +27,9 @@
>> #include <vector>
>>
>> namespace clang {
>> +
>> +class DiagnosticsEngine;
>> +
>> namespace format {
>>
>> /// \brief A wrapper around a \c Token storing information about the
>> @@ -116,7 +119,8 @@
>>
>> class UnwrappedLineParser {
>> public:
>> - UnwrappedLineParser(const FormatStyle &Style, FormatTokenSource
>> &Tokens,
>> + UnwrappedLineParser(clang::DiagnosticsEngine &Diag, const FormatStyle
>> &Style,
>> + FormatTokenSource &Tokens,
>> UnwrappedLineConsumer &Callback);
>>
>> /// Returns true in case of a structural error.
>> @@ -161,6 +165,7 @@
>> FormatToken FormatTok;
>> bool MustBreakBeforeNextToken;
>>
>> + clang::DiagnosticsEngine &Diag;
>> const FormatStyle &Style;
>> FormatTokenSource *Tokens;
>> UnwrappedLineConsumer &Callback;
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list