/usr/include/hfst/parsers/PmatchCompiler.h is in libhfst42-dev 3.9.0~r4595-3.
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 | //! @file PmatchCompiler.h
//!
//! @brief A class that encapsulates compilation of Xerox compatible regular
//! expressions into HFST automata.
//!
//! Xerox compatible regular expressions are a dialect of regular
//! expressions commonly used for two-level finite state morphologies.
//! The details can be found in Finite state morphology (2004) by
//! Beesley and Karttunen.
//!
//! This class is merely a wrapper around lex and yacc functions handling
//! the parsing.
// 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 License.
//
// 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 GUARD_PmatchCompiler_h
#define GUARD_PmatchCompiler_h
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <string>
#include "../HfstDataTypes.h"
namespace hfst {
//! @brief hfst::pmatch namespace is used for all functions related to Xerox
//! Regular Expresisions (PMATCH) parsing.
namespace pmatch {
//! @brief A compiler holding information needed to compile PMATCHs.
class PmatchCompiler
{
private:
bool flatten;
bool verbose;
public:
//! @brief Construct compiler for unknown format transducers.
PmatchCompiler();
//! @brief Create compiler for @a impl format transducers
PmatchCompiler(hfst::ImplementationType impl);
void set_flatten(bool val) { flatten = val; }
void set_verbose(bool val) { verbose = val; }
//! @brief Add a definition macro.
//! Compilers will replace arcs labeled @a name, with the transducer
//! defined by @a pmatch in later phases of compilation.
void define(const std::string& name, const std::string& pmatch);
//! @brief Compile a transducer defined by @a pmatch.
//! May return a pointer to @e empty transducer on non-fatal error.
//! A null pointer is returned on fatal error, if abort is not called.
std::map<std::string, HfstTransducer*> compile(const std::string& pmatch);
private:
std::map<std::string,hfst::HfstTransducer*> definitions_;
hfst::ImplementationType format_;
}
;
}}
// vim:set ft=cpp.doxygen:
#endif
|