Awali
Another Weighted Automata library
enums.hh
Go to the documentation of this file.
1 // This file is part of Awali.
2 // Copyright 2016-2022 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 
101  };
102 
103 
119  };
120 
121 
123  enum io_format_t {
125  FSM_JSON_V1 = 0x101,
126 
129 
131  TEXT = 1,
132 
135 
138 
140  DOT,
141 
144 
147 
153  };
154 
155  inline bool is_true_json(io_format_t format) {return (0x100 & format);}
157  {return ((format == FSM_JSON_V0) || is_true_json(format)); }
158 
159 
160 
168  ABSVAL
169  };
170 
171 
178  enum class history_kind_t {
179 
181  SINGLE,
182 
187  TUPLE,
188 
190  RATEXP,
191 
196  STRING,
197 
199  NO_HISTORY,
200 
205  PARTITION
206  };
207 
208  //end of group Options
210 
211 }// end of namespace awali
212 #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:156
state_elim_order_t
The different strategies for choosing which state to eliminate first when transforming an automaton i...
Definition: enums.hh:107
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:155
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:178
star_status_t
The different behaviours a weightset may have with respect to the star.
Definition: enums.hh:163
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:123
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:116
@ MIN_INOUT_DEGREE
States are eliminated by increasing in-out degree.
Definition: enums.hh:112
@ ID_ORDER
Alias to MIN_ID.
Definition: enums.hh:118
@ 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:166
@ TOPS
Definition: enums.hh:167
@ ABSVAL
Definition: enums.hh:168
@ STARRABLE
The star of every element exists.
Definition: enums.hh:165
@ 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:152
@ TEXT
Used for pure-text representation.
Definition: enums.hh:131
@ JSON
The current Awali format.
Definition: enums.hh:128
@ FADO
FADO format.
Definition: enums.hh:134
@ FSM_JSON_V1
The native Awali format.
Definition: enums.hh:125
@ SVG
Image produced by graphviz.
Definition: enums.hh:146
@ PDF
A pdf image is produced by graphviz.
Definition: enums.hh:143
@ DOT
Format used by graphviz.
Definition: enums.hh:140
@ GRAIL
Grail format.
Definition: enums.hh:137
@ 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
@ NET
Alias to NET.
Definition: enums.hh:98
@ STANDARD_AND_QUOTIENT
Standard automaton followed by quotient.
Definition: enums.hh:100
@ 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