LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
TokenFilter.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
17#ifndef TOKENFILTER_H
18#define TOKENFILTER_H
19
26
27#include <string>
28#include <set>
29#include <boost/tuple/tuple.hpp>
30
31namespace Lima {
32namespace LinguisticProcessing {
33namespace SyntacticAnalysis {
34
35// <!ELEMENT filtre ( nom, attribut*, categorie+)>
36// <!ATTLIST filtre ID ID #REQUIRED>
37//<!ELEMENT nom (#PCDATA ) >
38//<!ELEMENT attribut (#PCDATA ) >
39//<!ELEMENT categorie (#PCDATA ) >
40//<filtre ID ="F16">
41// <nom>PREP:à,au,aux</nom>
42// <categorie>146</categorie>
43// <attribut>�/attribut>
44// <attribut>au</attribut>
45// <attribut>aux</attribut>
46//</filtre>
47
49{
50public:
51 TokenFilter() : m_id(""), m_name(""), m_attributes(), m_categories() {}
52 TokenFilter(const std::string& id, const std::string& name,
53 const std::set< StringsPoolIndex >& attributes,
54 const std::set< LinguisticCode >& categories);
55 TokenFilter(const TokenFilter& filter);
57 virtual ~TokenFilter();
58
59 void operator=(const TokenFilter& filter);
60 bool operator==(const TokenFilter& filter) const;
61 bool operator!=(const TokenFilter& filter) const;
62 bool operator<(const TokenFilter& filter) const;
63// bool operator==(const Data::DicoWord& word) const;
64
65 std::string& id();
66 const std::string& id() const;
67
68 std::string& name(void);
69 const std::string& name(void) const;
70
71 std::set< StringsPoolIndex >& attributes();
72 const std::set< StringsPoolIndex >& attributes() const;
73 std::pair< std::set< StringsPoolIndex >::iterator, std::set< StringsPoolIndex >::iterator > attributesIterators();
74 std::pair< std::set< StringsPoolIndex >::const_iterator, std::set< StringsPoolIndex >::const_iterator > attributesIterators() const;
75
76 std::set< LinguisticCode >& categories();
77 const std::set< LinguisticCode >& categories() const;
78 std::pair< std::set< LinguisticCode >::iterator, std::set< LinguisticCode >::iterator > categoriesIterators();
79 std::pair< std::set< LinguisticCode >::const_iterator, std::set< LinguisticCode >::const_iterator > categoriesIterators() const;
80
81private:
82 std::string m_id;
83 std::string m_name;
84 std::set< StringsPoolIndex > m_attributes;
85 std::set< LinguisticCode > m_categories;
86};
87
88class tfless : public std::less< TokenFilter >
89{
90public:
91 bool operator()(const TokenFilter& x, const TokenFilter& y) const;
92};
93
94LIMA_SYNTACTICANALYSIS_EXPORT std::ostream& operator<<(std::ostream &os, const TokenFilter& d);
95
96inline bool TokenFilter::operator!=(const TokenFilter& word) const
97{
98 return !( operator==(word) );
99}
100
101inline bool TokenFilter::operator<(const TokenFilter& word) const
102{
103 return tfless()(*this, word);
104}
105
106inline std::string& TokenFilter::id()
107{
108 return m_id;
109}
110
111inline const std::string& TokenFilter::id() const
112{
113 return m_id;
114}
115
116inline std::string& TokenFilter::name(void)
117{
118 return m_name;
119}
120
121inline const std::string& TokenFilter::name(void) const
122{
123 return m_name;
124}
125
126inline std::set< StringsPoolIndex >& TokenFilter::attributes()
127{
128 return m_attributes;
129}
130
131inline const std::set< StringsPoolIndex >& TokenFilter::attributes() const
132{
133 return m_attributes;
134}
135
136inline std::pair< std::set< StringsPoolIndex >::iterator, std::set< StringsPoolIndex >::iterator > TokenFilter::attributesIterators()
137{
138 return std::make_pair(m_attributes.begin(), m_attributes.end());
139}
140
141inline std::pair< std::set< StringsPoolIndex >::const_iterator, std::set< StringsPoolIndex >::const_iterator > TokenFilter::attributesIterators() const
142{
143 return std::make_pair(m_attributes.begin(), m_attributes.end());
144}
145
146inline std::set< LinguisticCode >& TokenFilter::categories()
147{
148 return m_categories;
149}
150
151inline const std::set< LinguisticCode >& TokenFilter::categories() const
152{
153 return m_categories;
154}
155
156inline std::pair< std::set< LinguisticCode >::iterator, std::set< LinguisticCode >::iterator > TokenFilter::categoriesIterators()
157{
158 return std::make_pair(m_categories.begin(), m_categories.end());
159}
160
161inline std::pair< std::set< LinguisticCode >::const_iterator, std::set< LinguisticCode >::const_iterator > TokenFilter::categoriesIterators() const
162{
163 return std::make_pair(m_categories.begin(), m_categories.end());
164}
165
166} // namespace SyntacticAnalysis
167} // namespace LinguisticProcessing
168} // namespace Lima
169
170#endif // TOKENFILTER_H
#define LIMA_SYNTACTICANALYSIS_EXPORT
Provide function to read write and check a property.
bool operator<(const TokenFilter &filter) const
std::pair< std::set< StringsPoolIndex >::iterator, std::set< StringsPoolIndex >::iterator > attributesIterators()
bool operator!=(const TokenFilter &filter) const
Definition TokenFilter.h:96
std::pair< std::set< LinguisticCode >::iterator, std::set< LinguisticCode >::iterator > categoriesIterators()
bool operator==(const TokenFilter &filter) const
bool operator()(const TokenFilter &x, const TokenFilter &y) const
Used to search a real TokenFilter inside syntagmatic structure.
std::ostream & operator<<(std::ostream &os, const Key &k)
Operators to dump to stream the classes defined here.
NAUTITIA.
static bool operator<(const QStringView &entityStr, const TextHtmlEntity &entity)