Awali
Another Weighted Automata library
abstract_weightset.hh
Go to the documentation of this file.
1 // This file is part of Awali.
2 // Copyright 2016-2021 Sylvain Lombardy, Victor Marsault, Jacques Sakarovitch
3 //
4 // Awali is a free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef DYN_ABSTRACT_WEIGHTSET_HH
18 #define DYN_ABSTRACT_WEIGHTSET_HH
19 
21 
22 #include <awali/common/json_ast.hh>
23 
25 
26 #include<vector>
27 #include<string>
28 #include<iostream>
29 
30 namespace awali {
31 namespace dyn {
32 namespace context {
33 
34  //Every object of type abstract_weightset has a distinct index and is
35  //stored into the instances vector
37  static int counter;
38  const int index;
40 
41  inline
42  int getIndex() const{
43  return index;
44  }
45 
46  virtual const std::string& tostring(weightset_description ws, bool dynamic) const = 0;
47 
48  virtual const std::string& static_public_name() const = 0;
49 
50  virtual const std::string& static_desc() const = 0;
51 
52  virtual weightset_description fromstring(const std::string &k) const =0;
53 
55 
56  virtual std::vector<std::string> const& possible_promotions() const;
57 
58  virtual bool is_promotable_to(weightset_description ws) const =0;
59 
60  virtual ~abstract_weightset() {}
61  };
62 
63 
64 }}} //end of namespaces awali:dyn::context, awali::dyn, and awali
65 #endif
Definition: node.hh:365
std::shared_ptr< weightset_description_impl > weightset_description
Definition: description_types.hh:33
Main namespace of Awali.
Definition: ato.hh:22
Definition: abstract_weightset.hh:36
const int index
Definition: abstract_weightset.hh:38
virtual ~abstract_weightset()
Definition: abstract_weightset.hh:60
virtual weightset_description fromstring(const std::string &k) const =0
virtual weightset_description parse_weightset(json::object_t const *i) const =0
virtual const std::string & static_desc() const =0
virtual const std::string & static_public_name() const =0
virtual std::vector< std::string > const & possible_promotions() const
virtual const std::string & tostring(weightset_description ws, bool dynamic) const =0
abstract_weightset()
Definition: abstract_weightset.hh:39
static int counter
Definition: abstract_weightset.hh:37
virtual bool is_promotable_to(weightset_description ws) const =0
int getIndex() const
Definition: abstract_weightset.hh:42