File indexing completed on 2024-04-14 05:44:22

0001 /*
0002  *  SPDX-FileCopyrightText: 2002-2003 Jesper K. Pedersen <blackie@kde.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-only
0005  **/
0006 
0007 #ifndef ALTNREGEXP_H
0008 #define ALTNREGEXP_H
0009 
0010 #include "regexp.h"
0011 
0012 /**
0013    Abstract syntax node for `alternative' regular expression
0014    @internal
0015 */
0016 class AltnRegExp : public RegExp
0017 {
0018 public:
0019     AltnRegExp(bool selected);
0020 
0021     void addRegExp(RegExp *);
0022     RegExpList children() const;
0023 
0024     bool check(ErrorMap &, bool first, bool last) override;
0025     int precedence() const override
0026     {
0027         return 1;
0028     }
0029 
0030     QDomNode toXml(QDomDocument *doc) const override;
0031     bool load(const QDomElement &, const QString &version) override;
0032     RegExpType type() const override
0033     {
0034         return ALTN;
0035     }
0036 
0037     bool operator==(const RegExp &other) const override;
0038     void replacePart(CompoundRegExp *replacement) override;
0039 
0040 private:
0041     RegExpList list;
0042 };
0043 
0044 #endif // ALTNREGEXP_H