/usr/include/hfst/parsers/HfstTwolcDefs.h is in libhfst-dev 3.13.0~r3461-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | //! @file HfstTwolcDefs.h
//!
//! @author Miikka Silfverberg
//!
//! @brief Definitions for hfst-twolc.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 3 of the Licence.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef HFST_TWOLC_DEFS_H_
#define HFST_TWOLC_DEFS_H_
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <map>
#include <set>
#include <deque>
#include <iosfwd>
//! @brief Convenient subclass of std::map.
template <class K,class V> class HandyMap : public std::map<K,V>
{
public:
//! @brief Return true if @a k is associated with a value. Otherwise, return
//! false.
bool has_key(const K &k) const
{ return std::map<K,V>::find(k) != std::map<K,V>::end(); }
//! @brief Return the value associated with @a k.
//!
//! @pre The key @a k is associated with a value.
V get_value(const K &k) const
{ return std::map<K,V>::find(k)->second; }
};
//! @brief Convenient subclass of std::set.
template <class V> class HandySet : public std::set<V>
{
public:
//! @brief Return true if @a v belongs to this set.
bool has_element(const V &v) const
{ return std::set<V>::find(v) != std::set<V>::end(); }
};
//! @brief Convenient subclass of std::queue
template <class C> class HandyDeque : public std::deque<C>
{
public:
C get_front_and_pop(void)
{
C temp = std::deque<C>::front();
std::deque<C>::pop_front();
return temp;
}
};
template <class C> std::ostream &operator<<
(std::ostream &out, const HandyDeque<C> &d)
{
for (typename HandyDeque<C>::const_iterator it = d.begin();
it != d.end();
++it)
{ out << *it << " "; }
return out;
}
#endif // HFST_TWOLC_DEFS_H_
|