/usr/include/hfst/PmatchCompiler.h is in libhfst45-dev 3.10.0~r2798-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 | // Copyright (c) 2016 University of Helsinki
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 3 of the License, or (at your option) any later version.
// See the file COPYING included with this distribution for more
// information.
//! @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.
#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
|