LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
AbstractAccessIterators.h
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/***************************************************************************
7 * Copyright (C) 2004-2012 by CEA LIST *
8 * *
9 ***************************************************************************/
10
11
12#ifndef LIMA_COMMON_ABSTRACTACCESSITERATORS_H
13#define LIMA_COMMON_ABSTRACTACCESSITERATORS_H
14
15#include "common/LimaCommon.h"
17
18namespace Lima
19{
20namespace Common
21{
22
27{
28public:
35 virtual const std::pair<uint64_t, uint64_t> operator*() const = 0;
37 virtual bool operator==(const AbstractSubWordIterator& it) const = 0;
38 virtual bool operator!=(const AbstractSubWordIterator& it) const = 0;
40};
41
46{
47public:
48 virtual const Lima::LimaString operator*() const = 0;
50 virtual bool operator==(const AbstractSuperWordIterator& it) const = 0;
51 virtual bool operator!=(const AbstractSuperWordIterator& it) const = 0;
53};
54
55
60
65{
66public:
67 virtual const Lima::Common::ApproxSuggestion operator*() const = 0;
69 virtual bool operator==(const AbstractApproxWordIterator& it) const = 0;
70 virtual bool operator!=(const AbstractApproxWordIterator& it) const = 0;
72};
73
79{
80public:
81 virtual ClonableSubWordIterator* clone() const = 0;
82};
83
89{
90public:
91 virtual ClonableSuperWordIterator* clone() const = 0;
92};
93
99{
100public:
101 virtual ClonableApproxWordIterator* clone() const = 0;
102};
103
105{
106public:
109 AccessSubWordIterator& operator=(const AccessSubWordIterator& original);
110 virtual ~AccessSubWordIterator();
111
112 virtual const std::pair<uint64_t, uint64_t> operator*() const override;
113 virtual AbstractSubWordIterator &operator++(int) override;
114 virtual bool operator==(const AbstractSubWordIterator& it) const override;
115 virtual bool operator!=(const AbstractSubWordIterator& it) const override;
116
117private:
118 ClonableSubWordIterator* m_delegate;
119};
120
121
122inline const std::pair<uint64_t, uint64_t> AccessSubWordIterator::operator*() const {
123 return m_delegate->operator*(); // clazy:exclude=rule-of-two-soft
124}
125
127{
128 return m_delegate->operator++(i);
129}
130
132{
133 const AccessSubWordIterator& asi=static_cast<const AccessSubWordIterator&>(it);
134 return m_delegate->operator==(*(asi.m_delegate));
135}
136
138{
139 const AccessSubWordIterator& asi=static_cast<const AccessSubWordIterator&>(it);
140 return m_delegate->operator!=(*(asi.m_delegate));
141}
142
144{
145public:
148 AccessSuperWordIterator& operator=(const AccessSuperWordIterator& original);
149 virtual ~AccessSuperWordIterator();
150
151 virtual const Lima::LimaString operator*() const override;
152 virtual AbstractSuperWordIterator &operator++(int) override;
153 virtual bool operator==(const AbstractSuperWordIterator& it) const override;
154 virtual bool operator!=(const AbstractSuperWordIterator& it) const override;
155
156private:
157 ClonableSuperWordIterator* m_delegate;
158};
159
161{
162 return m_delegate->operator*();
163}
164
166{
167 return m_delegate->operator++(i);
168}
169
171{
172 const AccessSuperWordIterator& asi=static_cast<const AccessSuperWordIterator&>(it);
173 return m_delegate->operator==(*(asi.m_delegate));
174}
175
177{
178 const AccessSuperWordIterator& asi=static_cast<const AccessSuperWordIterator&>(it);
179 return m_delegate->operator!=(*(asi.m_delegate));
180}
181
183{
184public:
189
190 virtual const Lima::Common::ApproxSuggestion operator*() const override;
191 virtual AbstractApproxWordIterator &operator++(int) override;
192 virtual bool operator==(const AbstractApproxWordIterator& it) const override;
193 virtual bool operator!=(const AbstractApproxWordIterator& it) const override;
194
195private:
196 ClonableApproxWordIterator* m_delegate;
197};
198
200{
201 return m_delegate->operator*();
202}
203
205{
206 return m_delegate->operator++(i);
207}
208
210{
211 const AccessApproxWordIterator& asi=static_cast<const AccessApproxWordIterator&>(it);
212 return m_delegate->operator==(*(asi.m_delegate));
213}
214
216{
217 const AccessApproxWordIterator& asi=static_cast<const AccessApproxWordIterator&>(it);
218 return m_delegate->operator!=(*(asi.m_delegate));
219}
220
221
222} // Common
223} // Lima
224
225#endif
#define LIMA_COMMONMISC_EXPORT
Definition LimaCommon.h:133
defines abstract interface for iterators on superwords
virtual bool operator==(const AbstractApproxWordIterator &it) const =0
virtual bool operator!=(const AbstractApproxWordIterator &it) const =0
virtual AbstractApproxWordIterator & operator++(int)=0
virtual const Lima::Common::ApproxSuggestion operator*() const =0
defines abstract interface for iterators on subwords
virtual bool operator==(const AbstractSubWordIterator &it) const =0
virtual const std::pair< uint64_t, uint64_t > operator*() const =0
gives subword data.
virtual bool operator!=(const AbstractSubWordIterator &it) const =0
virtual AbstractSubWordIterator & operator++(int)=0
defines abstract interface for iterators on superwords
virtual const Lima::LimaString operator*() const =0
virtual bool operator!=(const AbstractSuperWordIterator &it) const =0
virtual bool operator==(const AbstractSuperWordIterator &it) const =0
virtual AbstractSuperWordIterator & operator++(int)=0
AccessApproxWordIterator(const AccessApproxWordIterator &original)
virtual AbstractApproxWordIterator & operator++(int) override
AccessApproxWordIterator(ClonableApproxWordIterator *delegate)
AccessApproxWordIterator & operator=(const AccessApproxWordIterator &original)
virtual bool operator==(const AbstractApproxWordIterator &it) const override
virtual const Lima::Common::ApproxSuggestion operator*() const override
virtual bool operator!=(const AbstractApproxWordIterator &it) const override
virtual bool operator!=(const AbstractSubWordIterator &it) const override
virtual AbstractSubWordIterator & operator++(int) override
virtual bool operator==(const AbstractSubWordIterator &it) const override
virtual const std::pair< uint64_t, uint64_t > operator*() const override
gives subword data.
virtual const Lima::LimaString operator*() const override
virtual bool operator!=(const AbstractSuperWordIterator &it) const override
virtual AbstractSuperWordIterator & operator++(int) override
virtual bool operator==(const AbstractSuperWordIterator &it) const override
clonable approxworditerator specificapproxworditerator for a specific access method should inherits f...
virtual ClonableApproxWordIterator * clone() const =0
clonable subworditerator specific subworditerator for a specific access method should inherits from t...
virtual ClonableSubWordIterator * clone() const =0
clonable superworditerator specific superworditerator for a specific access method should inherits fr...
virtual ClonableSuperWordIterator * clone() const =0
struct Lima::Common::_approxSuggestion ApproxSuggestion
NAUTITIA.
QString LimaString
Definition LimaString.h:33