File indexing completed on 2024-04-28 17:01:42

0001 /*
0002 SPDX-FileCopyrightText: 2002-2004 Otto Bruggeman <otto.bruggeman@home.nl>
0003 SPDX-FileCopyrightText: 2010 Kevin Kofler <kevin.kofler@chello.at>
0004 
0005 SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KOMPAREDIFF2_PARSER_H
0009 #define KOMPAREDIFF2_PARSER_H
0010 
0011 #include "kompare.h"
0012 
0013 namespace Diff2
0014 {
0015 
0016 class DiffModelList;
0017 class KompareModelList;
0018 
0019 class Parser
0020 {
0021 public:
0022     explicit Parser(const KompareModelList* list);
0023     ~Parser();
0024 
0025 public:
0026     DiffModelList* parse(QStringList& diffLines, bool* malformed = nullptr);
0027 
0028     enum Kompare::Generator generator() const { return m_generator; };
0029     enum Kompare::Format    format() const    { return m_format; };
0030 
0031 private:
0032     /** Which program was used to generate the output */
0033     enum Kompare::Generator determineGenerator(const QStringList& diffLines);
0034 
0035     int cleanUpCrap(QStringList& diffLines);
0036 
0037 private:
0038     enum Kompare::Generator m_generator;
0039     enum Kompare::Format    m_format;
0040 
0041     const KompareModelList* m_list;
0042 };
0043 
0044 } // End of namespace Diff2
0045 
0046 #endif
0047