Mescal
Loading...
Searching...
No Matches
shell_commands.h
1/*****************************/
2/* Gestionnaire de commandes */
3/*****************************/
4
5#ifndef SHELL_COMMANDS_H
6#define SHELL_COMMANDS_H
7
8#include "alloc.h"
9#include "error.h"
10
11
12#include "monoid_kernels.h"
13#include "nfa_mccluskey.h"
14#include "nfa_minimization.h"
15#include "nfa_props.h"
16#include "parse_regexp.h"
17#include "printing.h"
18#include "sep_group.h"
19#include "shell_memb.h"
20#include "shell_sclass.h"
21#include "shell_separ.h"
22#include "type_basic.h"
23#include <fcntl.h>
24#include <stdarg.h>
25#include <stdlib.h>
26#include <string.h>
27#include <unistd.h>
28
33extern sub_level optimization_level;
34
42int com_get_object(int i, //<! Index of the original object in the table.
43 string_chain* chain //<! The command chain.
44);
45
50void com_setrec_command(char* varname,
51 char* subname,
52 char* param,
53 com_command* com
54);
55
63typedef enum {
64 MODE_DEFAULT,
65 MODE_COPY,
66 MODE_PRINT,
67} com_mode;
68
78int com_apply_command(com_command* com,
79 char* varname,
80 com_mode mode,
81 bool* new
82);
83
84
85/******************************/
86/*+ Parameter interpretation +*/
87/******************************/
88
89
97bool param_getclass(com_parameters* pars,
98 int p,
99 const char* str,
100 classes* class
101);
102
110bool param_getrawtext(com_parameters* pars,
111 int p,
112 const char* str,
113 char** rawtext
114);
115
116
124bool param_getinteger(com_parameters* pars,
125 int p,
126 const char* str,
127 int* integer
128);
129
137bool param_getlong(com_parameters* pars,
138 int p,
139 const char* str,
140 long* integer
141);
142
143typedef enum {
144 PAR_CLASS,
145 PAR_RAWTEXT,
146 PAR_INTEGER,
147 PAR_AUTOMATONV,
148 PAR_AUTOMATON,
149 PAR_REGEXP,
150 PAR_MORPHISM,
151 PAR_RECDEF,
152 PAR_AUTOMOR,
153 PAR_AUTOREG,
154 PAR_REGMOR,
155 PAR_REGAUTOMOR,
156 PAR_OBJECTV,
157 PAR_OBJECT,
158 PAR_NONE,
159} par_type;
160
161
169bool param_checkobjtype(int i,
170 par_type type,
171 int p,
172 const char* str
173);
174
185int param_retrieve(com_parameters* pars,
186 int n,
187 int f,
188 par_type* types,
189 classes* classes,
190 char** rawtext,
191 int* integers,
192 int* objs,
193 bool* saved,
194 const char* str
195);
196
201void usage_generic(par_type* types,
202 int n,
203 par_type typeret,
204 const char* str
205);
206
207
208
219int com_integer_par(com_parameters* pars,
220 int p,
221 const char* str,
222 int* res
223);
224
225
226
227
228
229/********************************/
230/*+ Computation of new objects +*/
231/********************************/
232
233
234
245int shell_mccluskey_reg(char* varname,
246 com_parameters* pars,
247 const char* str
248);
249
260int shell_thompson_nfa(char* varname,
261 com_parameters* pars,
262 const char* str
263);
264
275int shell_glushkov_nfa(char* varname,
276 com_parameters* pars,
277 const char* str
278);
279
290int shell_mirror_nfa(char* varname,
291 com_parameters* pars,
292 const char* str
293);
294
305int shell_union_nfa(char* varname,
306 com_parameters* pars,
307 const char* str
308);
309
320int shell_intersect_nfa(char* varname,
321 com_parameters* pars,
322 const char* str
323);
324
335int shell_directproduct_dfa(char* varname,
336 com_parameters* pars,
337 const char* str
338);
339
350int shell_concat_nfa(char* varname,
351 com_parameters* pars,
352 const char* str
353);
354
365int shell_kleene_nfa(char* varname,
366 com_parameters* pars,
367 const char* str
368);
369
380int shell_elimeps_nfa(char* varname,
381 com_parameters* pars,
382 const char* str
383);
384
395int shell_trim_nfa(char* varname,
396 com_parameters* pars,
397 const char* str
398);
399
400
414int shell_determinize_nfa(char* varname,
415 com_parameters* pars,
416 const char* str
417);
418
419
430int shell_complement_nfa(char* varname,
431 com_parameters* pars,
432 const char* str
433);
434
435
446int shell_hopcroft_nfa(char* varname,
447 com_parameters* pars,
448 const char* str
449);
450
461int shell_brzozowski_nfa(char* varname,
462 com_parameters* pars,
463 const char* str
464);
465
476int shell_invtrans(char* varname,
477 com_parameters* pars,
478 const char* str
479);
480
491int shell_folding_dfa(char* varname,
492 com_parameters* pars,
493 const char* str
494);
495
506int shell_dycktrans_nfa(char* varname,
507 com_parameters* pars,
508 const char* str
509);
510
521int shell_random_nfa(char* varname,
522 com_parameters* pars,
523 const char* str
524);
525
536int shell_random_dfa(char* varname,
537 com_parameters* pars,
538 const char* str
539);
540
541
542
543
544
545
546/*******************/
547/*+ File handling +*/
548/*******************/
549
557int shell_open_object(char* varname,
558 com_parameters* pars,
559 const char* str
560);
561
569int shell_save_to_file(com_parameters* pars,
570 const char* str
571);
572
580int shell_load_session(com_parameters* pars,
581 const char* str
582);
583
591int shell_save_session(com_parameters* pars,
592 const char* str
593);
594
595
596/*************/
597/*+ Display +*/
598/*************/
599
600
601
602
610int shell_latex_gen(com_parameters* pars,
611 const char* str
612);
613
621int shell_view_rcayley(com_parameters* pars,
622 const char* str
623);
624
632int shell_view_lcayley(com_parameters* pars,
633 const char* str
634);
635
643int shell_view_mormult(com_parameters* pars,
644 const char* str
645);
646
654int shell_view_morder(com_parameters* pars,
655 const char* str
656);
657
665int shell_view_idems(com_parameters* pars,
666 const char* str
667);
668
676int shell_toggle_optimization(com_parameters* pars,
677 const char* str
678);
679
687int shell_toggle_membership(com_parameters* pars,
688 const char* str
689);
690
698int shell_view_mkernel(com_parameters* pars,
699 const char* str
700);
701
709int shell_view_akernel(com_parameters* pars,
710 const char* str
711);
712
720int shell_view_gkernel(com_parameters* pars,
721 const char* str
722);
723
731int shell_view_orbits(com_parameters* pars,
732 const char* str
733);
734
742int shell_view_nfa_run(com_parameters* pars,
743 const char* str
744);
745
753int shell_view_mor_image(com_parameters* pars,
754 const char* str
755);
756
757
758int shell_jep(void);
759
760
761/*******************/
762/*+ Property test +*/
763/*******************/
764
772int shell_counterfree(com_parameters* pars,
773 const char* str
774);
775
783int shell_autoda(com_parameters* pars,
784 const char* str
785);
786
794int shell_permutation(com_parameters* pars,
795 const char* str
796);
797
798
806int shell_rtrivialrivial(com_parameters* pars,
807 const char* str
808);
809
810
818int shell_commutative(com_parameters* pars,
819 const char* str
820);
821
829int shell_letteruniform(com_parameters* pars,
830 const char* str
831);
832
833
841int shell_membership(com_parameters* pars,
842 const char* str
843);
844
845
853int shell_separation(com_parameters* pars,
854 const char* str
855);
856
857
865int shell_print_chiera(com_parameters* pars,
866 const char* str
867);
868
876int shell_print_navhiera(com_parameters* pars,
877 const char* str
878);
879
880
888int shell_print_neghiera(com_parameters* pars,
889 const char* str
890);
891
899int shell_print_fphiera(com_parameters* pars,
900 const char* str
901);
902
903
904/*************************/
905/*+ Examples generators +*/
906/*************************/
907
908
916int shell_initfile_exall(com_parameters* pars,
917 const char* str
918);
919
927int shell_initfile_exfp(com_parameters* pars,
928 const char* str
929);
930
938int shell_initfile_exdet(com_parameters* pars,
939 const char* str
940);
941
942
950int shell_continuefile(com_parameters* pars,
951 const char* str
952);
953
961int shell_retrievefile(com_parameters* pars,
962 const char* str
963);
964
965
973int shell_browse_dfas(com_parameters* pars,
974 const char* str
975);
976
984int shell_browse_dfas_neg(com_parameters* pars,
985 const char* str
986);
987
995int shell_browse_dfas_fp(com_parameters* pars,
996 const char* str
997);
998
999
1007int shell_browse_dfas_bug(com_parameters* pars,
1008 const char* str
1009);
1010
1011
1019int shell_browse_dfas_time(com_parameters* pars,
1020 const char* str
1021);
1022
1023#endif
Macros and functions to help memory allocation.
Macros for displaying error messages.
Computation of kernels.
Computation of a regular expression from a NFA with the Brzozowski-McCluskey algorithm.
Minimization.
Separation by group languages.
A command.
Definition shell_keywords.h:221
Parameters of a command.
Definition shell_keywords.h:211
Chain of strings in a command.
Definition shell_keywords.h:202
Basic types.