1 /* -*- c++ -*- 2 ksieve/parser.h 3 4 This file is part of KSieve, 5 the KDE internet mail/usenet news message filtering library. 6 SPDX-FileCopyrightText: 2002-2003 Marc Mutz <mutz@kde.org> 7 8 SPDX-License-Identifier: GPL-2.0-only 9 */ 10 11 #pragma once 12 13 #include "ksieve_export.h" 14 15 namespace KSieve 16 { 17 class ScriptBuilder; 18 class Error; 19 20 /** @short Parser for the Sieve grammar. 21 @author Marc Mutz <mutz@kde.org> 22 **/ 23 class KSIEVE_EXPORT Parser 24 { 25 public: 26 Parser(const char *scursor, const char *const send, int options = 0); 27 ~Parser(); 28 29 void setScriptBuilder(ScriptBuilder *builder); 30 ScriptBuilder *scriptBuilder() const; 31 32 bool parse(); 33 34 const Error &error() const; 35 36 class Impl; 37 38 private: 39 Impl *i = nullptr; 40 41 private: 42 const Parser &operator=(const Parser &); 43 Parser(const Parser &); 44 }; 45 } // namespace KSieve 46 47