File indexing completed on 2024-04-21 05:44:10

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 // lib
0012 #include "global.h"
0013 // Qt
0014 #include <QStringList>
0015 
0016 namespace KompareDiff2
0017 {
0018 
0019 class DiffModelList;
0020 class ModelList;
0021 
0022 class Parser
0023 {
0024 public:
0025     explicit Parser(const ModelList *list);
0026     ~Parser();
0027 
0028 public:
0029     DiffModelList *parse(QStringList &diffLines, bool *malformed = nullptr);
0030 
0031     Generator generator() const
0032     {
0033         return m_generator;
0034     };
0035 
0036     Format format() const
0037     {
0038         return m_format;
0039     };
0040 
0041 private:
0042     /** Which program was used to generate the output */
0043     Generator determineGenerator(const QStringList &diffLines);
0044 
0045     int cleanUpCrap(QStringList &diffLines);
0046 
0047 private:
0048     Generator m_generator;
0049     Format m_format;
0050 
0051     const ModelList *m_list;
0052 };
0053 
0054 } // End of namespace KompareDiff2
0055 
0056 #endif