Mescal
Loading...
Searching...
No Matches
shell_sclass.h
1/*****************************************/
2/* Fonctions spécifiques sur les classes */
3/* (affichage principalement) */
4/*****************************************/
5
6#ifndef SHELL_SCLASS_H
7#define SHELL_SCLASS_H
8
9#include <stdlib.h>
10#include <stdio.h>
11#include <stdbool.h>
12#include "alloc.h"
13#include "shell_keywords.h"
14
19typedef enum {
20 // Ad-Hoc
21 CL_HTGEN,
22
23
24 // Star-free
25 CL_SF,
26 CL_SFMOD,
27 CL_SFAMT,
28 CL_SFGR,
29
30 // Polynomial closure
31 CL_PPT,
32 CL_POLMOD,
33 CL_POLAMT,
34 CL_POLGR,
35 CL_POLDD,
36 CL_POLMODP,
37 CL_POLAMTP,
38 CL_POLGRP,
39 CL_POL2ST,
40 CL_POL2MOD,
41 CL_POL2AMT,
42 CL_POL2GR,
43 CL_POL2DD,
44 CL_POL2MODP,
45 CL_POL2AMTP,
46 CL_POL2GRP,
47
48 // Boolean Polynomial closure
49 CL_PT,
50 CL_BPOLMOD,
51 CL_BPOLAMT,
52 CL_BPOLGR,
53 CL_BPOLDD,
54 CL_BPOLMODP,
55 CL_BPOLAMTP,
56 CL_BPOLGRP,
57 CL_BPOL2ST,
58 CL_BPOL2MOD,
59 CL_BPOL2AMT,
60 CL_BPOL2GR,
61 CL_BPOL2DD,
62 CL_BPOL2MODP,
63 CL_BPOL2AMTP,
64 CL_BPOL2GRP,
65
66 CL_JORBMOD,
67 CL_JORBAMT,
68 CL_JORBDD,
69 CL_JORBMODP,
70 CL_JORBAMTP,
71 CL_JORBGRP,
72 CL_JORBAT,
73
74
75 CL_KNASTAMTP,
76 CL_KNASTGRP,
77 CL_KNASTAT,
78
79 // Unambiguous Polynomial closure
80 CL_UPOLDD,
81 CL_UPOLMODP,
82 CL_UPOLAMTP,
83 CL_UPOLGRP,
84
85 CL_UBPOL2ST,
86 CL_UBPOL2MOD,
87 CL_UBPOL2AMT,
88 CL_UBPOL2GR,
89 CL_UBPOL2DD,
90 CL_UBPOL2MODP,
91 CL_UBPOL2AMTP,
92 CL_UBPOL2GRP,
93
94 // UTL closure
95 CL_UL,
96 CL_TLMOD,
97 CL_TLAMT,
98 CL_TLGR,
99 CL_TLDD,
100 CL_TLMODP,
101 CL_TLAMTP,
102 CL_TLGRP,
103 CL_TL2ST,
104 CL_TL2MOD,
105 CL_TL2AMT,
106 CL_TL2GR,
107 CL_TL2DD,
108 CL_TL2MODP,
109 CL_TL2AMTP,
110 CL_TL2GRP,
111
112 // FTL closure
113 CL_FLST,
114 CL_FLMOD,
115 CL_FLAMT,
116 CL_FLGR,
117 CL_FLDD,
118 CL_FLMODP,
119 CL_FLAMTP,
120 CL_FLGRP,
121 CL_FL2ST,
122 CL_FL2MOD,
123 CL_FL2AMT,
124 CL_FL2GR,
125 CL_FL2DD,
126 CL_FL2MODP,
127 CL_FL2AMTP,
128 CL_FL2GRP,
129
130 // PTL closure
131 CL_PLST,
132 CL_PLMOD,
133 CL_PLAMT,
134 CL_PLGR,
135 CL_PLDD,
136 CL_PLMODP,
137 CL_PLAMTP,
138 CL_PLGRP,
139 CL_PL2ST,
140 CL_PL2MOD,
141 CL_PL2AMT,
142 CL_PL2GR,
143 CL_PL2DD,
144 CL_PL2MODP,
145 CL_PL2AMTP,
146 CL_PL2GRP,
147
148 // Single classes
149 CL_AT,
150 CL_ATT,
151 CL_LT,
152 CL_LTT,
153 CL_ST,
154 CL_DD,
155 CL_MOD,
156 CL_MODP,
157 CL_AMT,
158 CL_AMTP,
159 CL_GR,
160 CL_GRP,
161 CL_REG,
162 CL_EMPTY,
163
164 // Number of classes
165 CL_END,
166} classes;
167
172extern void (*class_infos[CL_END]) (FILE*);
173
178extern const char* class_names[CL_END];
179
180/*********************/
181/* General functions */
182/*********************/
183
188void init_class_info(void);
189
190
198classes command_to_class(com_command*);
199
200
201
202
203
208void print_class_info(classes, FILE*);
209
217bool class_is_basis(classes cl);
218
219/**********/
220/* AD-HOC */
221/**********/
222
223void info_htgen(FILE*);
224
225/*************/
226/* Star-free */
227/*************/
228
229void info_sf(FILE*);
230void info_sf_mod(FILE*);
231void info_sf_amt(FILE*);
232void info_sf_gr(FILE*);
233
234
235
236/**********************/
237/* Polynomial closure */
238/**********************/
239
240void info_ppt(FILE*);
241void info_pol_mod(FILE*);
242void info_pol_amt(FILE*);
243void info_pol_gr(FILE*);
244void info_pol_dd(FILE*);
245void info_pol_modp(FILE*);
246void info_pol_amtp(FILE*);
247void info_pol_grp(FILE*);
248void info_pol2_st(FILE*);
249void info_pol2_mod(FILE*);
250void info_pol2_amt(FILE*);
251void info_pol2_gr(FILE*);
252void info_pol2_dd(FILE*);
253void info_pol2_modp(FILE*);
254void info_pol2_amtp(FILE*);
255void info_pol2_grp(FILE*);
256
257
258/******************************/
259/* Boolean Polynomial closure */
260/******************************/
261
262void info_pt(FILE*);
263void info_bpol_mod(FILE*);
264void info_bpol_amt(FILE*);
265void info_bpol_gr(FILE*);
266void info_bpol_dd(FILE*);
267void info_bpol_modp(FILE*);
268void info_bpol_amtp(FILE*);
269void info_bpol_grp(FILE*);
270void info_bpol2_st(FILE*);
271void info_bpol2_mod(FILE*);
272void info_bpol2_amt(FILE*);
273void info_bpol2_gr(FILE*);
274void info_bpol2_dd(FILE*);
275void info_bpol2_modp(FILE*);
276void info_bpol2_amtp(FILE*);
277void info_bpol2_grp(FILE*);
278
279void info_jorb_dd(FILE*);
280void info_jorb_mod(FILE*);
281void info_jorb_amt(FILE*);
282void info_jorb_modp(FILE*);
283void info_jorb_amtp(FILE*);
284void info_jorb_grp(FILE*);
285void info_jorb_at(FILE*);
286
287void info_knastamtp(FILE*);
288void info_knastgrp(FILE*);
289void info_knastat(FILE*);
290
291/**********************************/
292/* Unambiguous Polynomial closure */
293/**********************************/
294
295void info_upol_dd(FILE*);
296void info_upol_modp(FILE*);
297void info_upol_amtp(FILE*);
298void info_upol_grp(FILE*);
299
300void info_ubpol2_st(FILE*);
301void info_ubpol2_mod(FILE*);
302void info_ubpol2_amt(FILE*);
303void info_ubpol2_gr(FILE*);
304void info_ubpol2_dd(FILE*);
305void info_ubpol2_modp(FILE*);
306void info_ubpol2_amtp(FILE*);
307void info_ubpol2_grp(FILE*);
308
309
310/***************/
311/* UTL closure */
312/***************/
313
314void info_ul(FILE*);
315void info_utl_mod(FILE*);
316void info_utl_amt(FILE*);
317void info_utl_gr(FILE*);
318void info_utl_dd(FILE*);
319void info_utl_modp(FILE*);
320void info_utl_amtp(FILE*);
321void info_utl_grp(FILE*);
322void info_utl2_st(FILE*);
323void info_utl2_mod(FILE*);
324void info_utl2_amt(FILE*);
325void info_utl2_gr(FILE*);
326void info_utl2_dd(FILE*);
327void info_utl2_modp(FILE*);
328void info_utl2_amtp(FILE*);
329void info_utl2_grp(FILE*);
330
331
332/***************/
333/* FTL closure */
334/***************/
335
336void info_ftl_st(FILE*);
337void info_ftl_mod(FILE*);
338void info_ftl_amt(FILE*);
339void info_ftl_gr(FILE*);
340void info_ftl_dd(FILE*);
341void info_ftl_modp(FILE*);
342void info_ftl_amtp(FILE*);
343void info_ftl_grp(FILE*);
344void info_ftl2_st(FILE*);
345void info_ftl2_mod(FILE*);
346void info_ftl2_amt(FILE*);
347void info_ftl2_gr(FILE*);
348void info_ftl2_dd(FILE*);
349void info_ftl2_modp(FILE*);
350void info_ftl2_amtp(FILE*);
351void info_ftl2_grp(FILE*);
352
353
354/***************/
355/* PTL closure */
356/***************/
357
358void info_ptl_st(FILE*);
359void info_ptl_mod(FILE*);
360void info_ptl_amt(FILE*);
361void info_ptl_gr(FILE*);
362void info_ptl_dd(FILE*);
363void info_ptl_modp(FILE*);
364void info_ptl_amtp(FILE*);
365void info_ptl_grp(FILE*);
366void info_ptl2_st(FILE*);
367void info_ptl2_mod(FILE*);
368void info_ptl2_amt(FILE*);
369void info_ptl2_gr(FILE*);
370void info_ptl2_dd(FILE*);
371void info_ptl2_modp(FILE*);
372void info_ptl2_amtp(FILE*);
373void info_ptl2_grp(FILE*);
374
375
376/******************/
377/* Single classes */
378/******************/
379
380void info_at(FILE*);
381void info_att(FILE*);
382void info_lt(FILE*);
383void info_ltt(FILE*);
384void info_st(FILE*);
385void info_dd(FILE*);
386void info_mod(FILE*);
387void info_modp(FILE*);
388void info_amt(FILE*);
389void info_amtp(FILE*);
390void info_gr(FILE*);
391void info_grp(FILE*);
392void info_reg(FILE*);
393void info_empty(FILE*);
394
395
396/*********************/
397/* Affichage partagé */
398/*********************/
399
400void print_info_input(int i, FILE* out);
401
402void print_start_comp(FILE* out, char* class);
403
404void print_conclusion_comp(FILE* out, bool res, const char* namec);
405
406void print_conclusion_separ(FILE* out, bool res, const char* namec);
407
408
409
410/***********************************************/
411/* Affichage des informations sur un opérateur */
412/***********************************************/
413
414
415
416
417// Negation hierarchies
418void print_infooper_neghiera(classes c, FILE* out);
419
420// Future/past hierarchies
421void print_infooper_fphiera(classes c, FILE* out);
422
423#endif
Macros and functions to help memory allocation.
Keywords and commands used in the shell.
A command.
Definition shell_keywords.h:221