Awali
Another Weighted Automata library
enums.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 AWALI_COMMON_ENUMS_HH
18 #define AWALI_COMMON_ENUMS_HH
19 
20 namespace awali {
21 
22  /* ========================================================================
23  For developpers: whenever an enum is added here, do not forget to
24  register it in enum_utils.hh and its values in enum_utils.cc
25  ======================================================================== */
26 
35  enum direction_t {
37  BACKWARD
38  };
39 
40 
44  enum layout_t {
50  CIRCULAR
51  };
52 
53 
55  enum minim_algo_t {
60  };
61 
62 
66  HOPCROFT
67  };
68 
99  };
100 
101 
117  };
118 
119 
121  enum io_format_t {
123  FSM_JSON_V1 = 0x101,
124 
127 
129  TEXT = 1,
130 
133 
136 
138  DOT,
139 
142 
145 
151  };
152 
153  inline bool is_true_json(io_format_t format) {return (0x100 & format);}
155  {return ((format == FSM_JSON_V0) || is_true_json(format)); }
156 
157 
158 
166  ABSVAL
167  };
168 
169 
176  enum class history_kind_t {
177 
179  SINGLE,
180 
185  TUPLE,
186 
188  RATEXP,
189 
194  STRING,
195 
197  NO_HISTORY,
198 
203  PARTITION
204  };
205 
206  //end of group Options
208 
209 }// end of namespace awali
210 #endif
direction_t
Used in some algorithms in which one may considers transitions forward or backwards.
Definition: enums.hh:35
bool is_json_like(io_format_t format)
Definition: enums.hh:154
state_elim_order_t
The different strategies for choosing which state to eliminate first when transforming an automaton i...
Definition: enums.hh:105
layout_t
The different layout that we may pass to program dot to compute geometry of automata.
Definition: enums.hh:44
bool is_true_json(io_format_t format)
Definition: enums.hh:153
quotient_algo_t
The different algorithms for computing the minimal quotient.
Definition: enums.hh:64
history_kind_t
The different kinds of history.
Definition: enums.hh:176
star_status_t
The different behaviours a weightset may have with respect to the star.
Definition: enums.hh:161
minim_algo_t
The different algorithms for computing the minimal automaton.
Definition: enums.hh:55
io_format_t
The different format for input/output of automata and expressions.
Definition: enums.hh:121
exp_to_aut_algo_t
The different algorithms for transforming an expression into an automaton.
Definition: enums.hh:70
@ FORWARD
Definition: enums.hh:36
@ BACKWARD
Definition: enums.hh:37
@ MIN_ID
States are eliminated by increasing id number (that is, in an arbitrary order).
Definition: enums.hh:114
@ MIN_INOUT_DEGREE
States are eliminated by increasing in-out degree.
Definition: enums.hh:110
@ ID_ORDER
Alias to MIN_ID.
Definition: enums.hh:116
@ CIRCULAR
Circular layout.
Definition: enums.hh:50
@ VERTICAL
Spring left to right layout.
Definition: enums.hh:46
@ HORIZONTAL
Spring top down layout.
Definition: enums.hh:48
@ HOPCROFT
Definition: enums.hh:66
@ MOORE
Definition: enums.hh:65
@ SINGLE
The states comes from a single state.
@ TUPLE
The states comes from a tuple of state.
@ STRING
The state history is expressed directy as a string.
@ RATEXP
The state comes from a rational expression.
@ NO_HISTORY
The state has no history.
@ PARTITION
The state is a set of states of another automaton.
@ NON_STARRABLE
Definition: enums.hh:164
@ TOPS
Definition: enums.hh:165
@ ABSVAL
Definition: enums.hh:166
@ STARRABLE
The star of every element exists.
Definition: enums.hh:163
@ BRZOZOWSKI
Transposes, then determinizes, then transposes, then determinizes.
Definition: enums.hh:59
@ DETERMINIZE_QUOTIENT
Determinizes, then computes the minimal quotient (see quotient_algo_t).
Definition: enums.hh:57
@ FSM_JSON_V0
Deprecated Awali and Vaucanson-R format.
Definition: enums.hh:150
@ TEXT
Used for pure-text representation.
Definition: enums.hh:129
@ JSON
The current Awali format.
Definition: enums.hh:126
@ FADO
FADO format.
Definition: enums.hh:132
@ FSM_JSON_V1
The native Awali format.
Definition: enums.hh:123
@ SVG
Image produced by graphviz.
Definition: enums.hh:144
@ PDF
A pdf image is produced by graphviz.
Definition: enums.hh:141
@ DOT
Format used by graphviz.
Definition: enums.hh:138
@ GRAIL
Grail format.
Definition: enums.hh:135
@ COMPACT_THOMPSON
A variant of the Thompson automaton, with fewer states.
Definition: enums.hh:94
@ BREAKING_DERIVED_TERM
A variant of the Derived term automaton where left factors of expressions which are sums are "broken"...
Definition: enums.hh:84
@ WEIGHTED_THOMPSON
A variant of the Thompson automaton, with no circuit of epsilon-transitions; in this variant,...
Definition: enums.hh:96
@ STANDARD
Alias to GLUSHKOV.
Definition: enums.hh:77
@ GLUSHKOV
This automaton without epsilon-transitions is incrementally built from the expression.
Definition: enums.hh:75
@ THOMPSON
The classical Thompson automaton, with epsilon-transitions.
Definition: enums.hh:92
@ STANDARD_AND_QUOTIENT
Standard automaton followed by quotient.
Definition: enums.hh:98
@ BREAKING
Alias to BREAKING_DERIVED_TERM.
Definition: enums.hh:86
@ DERIVED_TERM
Also known as Partial derived terms.
Definition: enums.hh:82
auto format(const ValueSet &vs, const typename ValueSet::value_t &v, Args &&... args) -> std::string
Format v via vs.print.
Definition: stream.hh:109
Main namespace of Awali.
Definition: ato.hh:22