Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

Commit 75100e28 authored by Erwan Jahier's avatar Erwan Jahier
Browse files

lurette 0.106 Fri, 25 Oct 2002 09:36:48 +0200 by jahier

Parent-Version:      0.105
Version-Log:

source/lurettetop.ml:
   Add a --prefix <string> option that is added before the call
   to lurette (usefull, eg, for timing purpuses).

source/lurettetop.ml:
source/lurette.ml:
source/command_line.ml:
ihm/xlurette/*
  Add a ---show-step options that let one control whether or not
  the step number is printed.

Project-Description: Lurette
parent 8c181009
......@@ -27,7 +27,7 @@
(source/luc_exe.ml 12191 1034351455 b/32_ima_exe.ml 1.21)
(test/heater_float.rif.exp 1485 1034951022 b/30_heater_flo 1.11)
(source/graph.ml 2563 1027066799 14_graph.ml 1.7)
(ihm/xlurette/makefile 1475 1035373803 c/16_makefile 1.4)
(ihm/xlurette/makefile 1517 1035531408 c/16_makefile 1.5)
(test/usager.luc 495 1032789516 b/14_usager.env 1.9)
(mlcuddidl/manager.ml 8017 1034006019 c/47_manager.ml 1.1)
(cuddaux/cuddauxInt.h 2058 1034006019 c/28_cuddauxInt 1.1)
......@@ -40,38 +40,39 @@
(mlcuddidl/idd.ml 7061 1034006019 d/0_idd.ml 1.1)
(source/print.mli 1145 1033397911 46_print.mli 1.12)
(mlcuddidl/rdd.mli 7174 1034006019 c/40_rdd.mli 1.1)
(test/Makefile 32 1034951022 c/0_Makefile 1.7)
(test/Makefile 32 1035531408 c/0_Makefile 1.8)
(source/parse_env.ml 24584 1033723811 41_parse_env. 1.29)
(ihm/xlurette/xlurette_glade_main.ml 17194 1035373803 c/12_xlurette_g 1.8)
(ihm/xlurette/xlurette_glade_main.ml 19926 1035531408 c/12_xlurette_g 1.9)
(demo/chaudiere/chaudiere_oracle.lus 107 1031732392 c/8_chaudiere_ 1.1)
(source/solver.ml 31802 1033732198 39_solver.ml 1.32)
(test/ControleurPorte.lus 3219 1032940601 c/17_Controleur 1.1)
(source/lurette.ml 13556 1035373803 12_lurette.ml 1.55)
(source/Makefile 1082 1034951022 c/20_Makefile 1.6)
(source/lurette.ml 13628 1035531408 12_lurette.ml 1.56)
(source/Makefile 1114 1035531408 c/20_Makefile 1.7)
(source/util.ml 18693 1035373803 35_util.ml 1.30)
(mlcuddidl/manager.mli 7912 1034006019 c/46_manager.ml 1.1)
(test/time.res 5580 1034006019 b/49_time.res 1.15)
(test/time.res 6228 1035531408 b/49_time.res 1.16)
(doc/Interface_draft 5232 1003928781 19_Interface_ 1.1)
(source/sim2chro.mli 1455 1027943375 b/23_sim2chro.m 1.5)
(source/command_line_luc_exe.mli 1082 1034006019 b/34_command_li 1.5)
(source/Makefile.lucky 2001 1034951022 b/41_Makefile.i 1.7)
(source/Makefile.lucky 2003 1035531408 b/41_Makefile.i 1.8)
(TAGS 9825 1007379917 21_TAGS 1.6)
(test/giro/onlyroll.lus 18298 1031732392 c/7_onlyroll.l 1.1)
(mlcuddidl/rdd.ml 8746 1034006019 c/41_rdd.ml 1.1)
(source/Makefile.lurette_lib 1739 1034951022 c/2_Makefile.l 1.7)
(source/Makefile.lurette_lib 1741 1035531408 c/2_Makefile.l 1.8)
(source/parse_env.mli 1025 1033738731 40_parse_env. 1.10)
(source/gen_stubs.ml 33599 1034351455 24_generate_l 1.38)
(OcamlMakefile 22626 1034951022 17_OcamlMakef 1.45)
(source/command_line.ml 4625 1031053030 b/20_command_li 1.8)
(source/command_line.ml 4811 1035531408 b/20_command_li 1.9)
(mlcuddidl/bdd.ml 10889 1034006019 d/6_bdd.ml 1.1)
(mlcuddidl/idd_caml.c 15964 1034006019 c/50_idd_caml.c 1.1)
(cuddaux/cuddauxCompose.c 13638 1034006019 c/30_cuddauxCom 1.1)
(test/porte.luc 1050 1032789516 b/16_porte.env 1.8)
(make_lurette 1306 1034006019 27_make_luret 1.17)
(source/control.ml 4416 1030975996 c/4_control.ml 1.3)
(ihm/xlurette/xlurette_glade_interface.ml 30518 1035373803 c/15_xlurette_g 1.5)
(source/lurettetop.ml 25262 1035373803 c/1_lurettetop 1.15)
(ihm/xlurette/xlurette_glade_interface.ml 31659 1035531408 c/15_xlurette_g 1.6)
(source/lurettetop.ml 27058 1035531408 c/1_lurettetop 1.16)
(mlcuddidl/README 1574 1034006019 d/8_README 1.1)
(source/Makefile.lurettetop 300 1035531408 d/14_Makefile.l 1.1)
(cuddaux/README 1427 1034006019 c/34_README 1.1)
(source/ne.mli 2376 1033723811 c/22_ne.mli 1.1)
(README 2264 1034951022 10_README 1.4)
......@@ -82,7 +83,7 @@
(source/env.mli 2027 1033738731 15_env.mli 1.16)
(mlcuddidl/rdd_caml.c 41613 1034006019 c/39_rdd_caml.c 1.1)
(Makefile.common.in 528 1034951022 d/12_Makefile.c 1.2)
(user-rules 14696 1035373803 c/14_myrules 1.12)
(user-rules 13701 1035531408 c/14_myrules 1.13)
(doc/archi.fig 3693 1003928781 20_archi.fig 1.1)
(source/lurette.mli 448 1016027474 11_lurette.ml 1.12)
(source/gne.mli 1552 1033397911 b/36_gne.mli 1.4)
......@@ -95,8 +96,9 @@
(source/constraint.ml 2418 1033732198 c/19_constraint 1.4)
(mlcuddidl/manager.idl 11024 1034006019 c/48_manager.id 1.1)
(test/vrai_tram.c 3060 1027066799 b/8_vrai_tram. 1.3)
(source/command_line.mli 1442 1031053030 b/21_command_li 1.7)
(ihm/xlurette/xlurette.glade 46415 1035373803 c/13_xlurette.g 1.6)
(Makefile 941 1035531408 d/13_Makefile 1.1)
(source/command_line.mli 1482 1035531408 b/21_command_li 1.8)
(ihm/xlurette/xlurette.glade 47909 1035531408 c/13_xlurette.g 1.7)
(demo/chaudiere/chaudiere.luc 446 1032789516 c/11_chaudiere. 1.5)
(source/graph.mli 2218 1027066799 13_graph.mli 1.9)
(mlcuddidl/bdd_caml.c 57199 1034006019 d/4_bdd_caml.c 1.1)
......@@ -134,7 +136,7 @@
(source/command_line_luc_exe.ml 2786 1034006019 b/33_command_li 1.7)
(mlcuddidl/cudd_caml.h 1210 1034006019 d/2_cudd_caml. 1.1)
(source/value.ml 2355 1033723811 c/23_value.ml 1.1)
(test/time.exp 5580 1034006019 b/48_time.exp 1.12)
(test/time.exp 6228 1035531408 b/48_time.exp 1.13)
(test/giro/allocator.lus 1087 1031732392 c/5_allocator. 1.1)
(lurette.depfull.dot 49 1007651448 b/5_lurette.de 1.2)
(mlcuddidl/idd.mli 5470 1034006019 c/51_idd.mli 1.1)
......
#
# Makefile to build, lurette, lucky, and co, plus cuddaux and mlcuddidl.
#
# In order to use and install it, you need somehow in your paths:
#
# (1) The ocaml compiler (version 3.02 or higher):
# http://caml.inria.fr/
#
# (2) The stub code generator CamlIDL (version 1.04):
# http://caml.inria.fr/camlidl/
#
# (3) The BDD library CUDD (version 2.3.1)
# http://vlsi.colorado.edu/~fabio/CUDD/cuddIntro.html
#
# You also need cuddaux aux and mlcuddidl by Bertrand Jeannet, but since it
# GNU-software, and to make the installation process smother, I have chosen
# to include them in this package.
#
#########################################################################
all: Cuddaux Mlcuddidl Lucky-and-co Xlurette
Lucky-and-co:
cd source; make install
Cuddaux:
cd cuddaux ; make install
Mlcuddidl:
cd mlcuddidl ; make install
Xlurette:
cd ihm/xlurette ; make install
......@@ -14,7 +14,7 @@ xlurette: dummy
mlglade xlurette.glade
ocamlc -c -I +lablgtk -labels -c xlurette_glade_interface.ml
ocamlc -c -i -I +lablgtk -labels -c xlurette_glade_callbacks.ml
ocamlc -c -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlc -c -pp "camlp4o" -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlc $(THREAD) -I +lablgtk -o xlurette unix.cma lablgtk.cma gtkInit.cmo \
xlurette_glade_callbacks.cmo xlurette_glade_interface.cmo xlurette_glade_main.cmo
......@@ -22,7 +22,7 @@ xlurette.opt: dummy
mlglade xlurette.glade
ocamlopt -c -I +lablgtk -labels -c xlurette_glade_interface.ml
ocamlopt -c -I +lablgtk -labels -c xlurette_glade_callbacks.ml
ocamlopt -c -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlopt -c -pp "camlp4o" -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlopt -I +lablgtk -labels -o xlurette unix.cmxa lablgtk.cmxa gtkInit.cmx \
xlurette_glade_callbacks.cmx xlurette_glade_interface.cmx xlurette_glade_main.cmx
......@@ -30,7 +30,7 @@ xlurette.opt_opt: dummy
mlglade xlurette.glade
ocamlopt.opt -c -I +lablgtk -labels -c xlurette_glade_interface.ml
ocamlopt.opt -c -I +lablgtk -labels -c xlurette_glade_callbacks.ml
ocamlopt.opt -c -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlopt.opt -pp "camlp4o" -c -I +lablgtk $(THREAD) -c xlurette_glade_main.ml
ocamlopt.opt -I +lablgtk -labels -o xlurette unix.cmxa lablgtk.cmxa gtkInit.cmx \
xlurette_glade_callbacks.cmx xlurette_glade_interface.cmx xlurette_glade_main.cmx
......
......@@ -579,11 +579,11 @@
<border_width>4</border_width>
<width>150</width>
<height>100</height>
<tooltip>Save session</tooltip>
<tooltip>Save current parameters</tooltip>
<signal>
<name>clicked</name>
<handler>save_session</handler>
<last_modification_time>Thu, 19 Sep 2002 08:53:36 GMT</last_modification_time>
<handler>save_parameters</handler>
<last_modification_time>Wed, 23 Oct 2002 15:40:31 GMT</last_modification_time>
</signal>
<label> </label>
<icon>save.xpm</icon>
......@@ -1370,7 +1370,7 @@
<name>radiobutton_verbose_on</name>
<can_focus>True</can_focus>
<label>On</label>
<active>True</active>
<active>False</active>
<draw_indicator>True</draw_indicator>
<child>
<padding>0</padding>
......@@ -1384,7 +1384,7 @@
<name>radiobutton_verbose_off</name>
<can_focus>True</can_focus>
<label>Off</label>
<active>False</active>
<active>True</active>
<draw_indicator>True</draw_indicator>
<group>radiobutton_verbose_on</group>
<child>
......@@ -1396,7 +1396,62 @@
</widget>
<widget>
<class>Placeholder</class>
<class>GtkHBox</class>
<name>hbox12</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
<widget>
<class>GtkLabel</class>
<name>label21</name>
<label>Use the progress bar </label>
<justify>GTK_JUSTIFY_FILL</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkRadioButton</class>
<name>radiobutton_show_step_on</name>
<tooltip>Migth slow down the execution a smidgin</tooltip>
<can_focus>True</can_focus>
<label>yes</label>
<active>True</active>
<draw_indicator>True</draw_indicator>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkRadioButton</class>
<name>radiobutton_show_step_off</name>
<can_focus>True</can_focus>
<label>No</label>
<active>False</active>
<draw_indicator>True</draw_indicator>
<group>radiobutton_show_step_on</group>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
</widget>
<widget>
......@@ -1441,11 +1496,11 @@
<border_width>4</border_width>
<width>150</width>
<height>100</height>
<tooltip>Save session</tooltip>
<tooltip>Save current parameters</tooltip>
<signal>
<name>clicked</name>
<handler>save_session</handler>
<last_modification_time>Thu, 19 Sep 2002 08:53:36 GMT</last_modification_time>
<handler>save_parameters</handler>
<last_modification_time>Wed, 23 Oct 2002 15:29:02 GMT</last_modification_time>
</signal>
<label> </label>
<icon>save.xpm</icon>
......@@ -1468,6 +1523,10 @@
<icon>close.xpm</icon>
</widget>
</widget>
<widget>
<class>Placeholder</class>
</widget>
</widget>
</widget>
</widget>
......
......@@ -378,7 +378,7 @@ let button19 = toolbar4#insert_button
~icon:(GMisc.pixmap (GDraw.pixmap_from_xpm ~file:"pixmaps/save.xpm" ()) ())#coerce
()
in
let _ = tooltips#set_tip ~text:"Save session" button19#coerce in
let _ = tooltips#set_tip ~text:"Save current parameters" button19#coerce in
let button20 = toolbar4#insert_button
~text: " "
~icon:(GMisc.pixmap (GDraw.pixmap_from_xpm ~file:"pixmaps/halt.xpm" ()) ())#coerce
......@@ -972,7 +972,7 @@ let radiobutton_verbose_on = GButton.radio_button
)
~label: "On"
~draw_indicator:true
~active:true
~active:false
()
in
let _ = GtkBase.Widget.set_can_focus radiobutton_verbose_on#as_widget true in
......@@ -984,10 +984,56 @@ let radiobutton_verbose_off = GButton.radio_button
)
~label: "Off"
~draw_indicator:true
~active:false
~active:true
()
in
let _ = GtkBase.Widget.set_can_focus radiobutton_verbose_off#as_widget true in
let hbox12 = GPack.hbox
~spacing:0
~homogeneous:false
~packing:(vbox9#pack ~padding:0
~fill:false
~expand:false
)
()
in
let label21 = GMisc.label
~text: "Use the progress bar "
~packing:(hbox12#pack ~padding:0
~fill:false
~expand:false
)
~xalign:0.5
~yalign:0.5
~xpad:0
~ypad:0
~line_wrap:false
()
in
let radiobutton_show_step_on = GButton.radio_button
~packing:(hbox12#pack ~padding:0
~fill:false
~expand:false
)
~label: "yes"
~draw_indicator:true
~active:true
()
in
let _ = GtkBase.Widget.set_can_focus radiobutton_show_step_on#as_widget true in
let _ = tooltips#set_tip ~text:"Migth slow down the execution a smidgin" radiobutton_show_step_on#coerce in
let radiobutton_show_step_off = GButton.radio_button
~group:radiobutton_show_step_on#group
~packing:(hbox12#pack ~padding:0
~fill:false
~expand:false
)
~label: "No"
~draw_indicator:true
~active:false
()
in
let _ = GtkBase.Widget.set_can_focus radiobutton_show_step_off#as_widget true in
let toolbar3 = GButton.toolbar
~packing:(vbox9#pack ~padding:0
~fill:false
......@@ -1014,7 +1060,7 @@ let button15 = toolbar3#insert_button
~icon:(GMisc.pixmap (GDraw.pixmap_from_xpm ~file:"pixmaps/save.xpm" ()) ())#coerce
()
in
let _ = tooltips#set_tip ~text:"Save session" button15#coerce in
let _ = tooltips#set_tip ~text:"Save current parameters" button15#coerce in
let button16 = toolbar3#insert_button
~text: " "
~icon:(GMisc.pixmap (GDraw.pixmap_from_xpm ~file:"pixmaps/close.xpm" ()) ())#coerce
......@@ -1033,7 +1079,7 @@ in
let _ = button16#connect#clicked
~callback:callbacks#quit in
let _ = button15#connect#clicked
~callback:callbacks#save_session in
~callback:callbacks#save_parameters in
let _ = button14#connect#clicked
~callback:callbacks#call_sim2chro_clicked in
let _ = button2#connect#clicked
......@@ -1043,7 +1089,7 @@ let _ = button36#connect#clicked
let _ = button20#connect#clicked
~callback:callbacks#stop_run in
let _ = button19#connect#clicked
~callback:callbacks#save_session in
~callback:callbacks#save_parameters in
let _ = button18#connect#clicked
~callback:callbacks#call_sim2chro_clicked in
let _ = button17#connect#clicked
......@@ -1137,6 +1183,10 @@ method hbox6 = hbox6
method label15 = label15
method radiobutton_verbose_on = radiobutton_verbose_on
method radiobutton_verbose_off = radiobutton_verbose_off
method hbox12 = hbox12
method label21 = label21
method radiobutton_show_step_on = radiobutton_show_step_on
method radiobutton_show_step_off = radiobutton_show_step_off
method toolbar3 = toolbar3
method button14 = button14
method button15 = button15
......
......@@ -28,6 +28,7 @@ let _ =
; Unix.set_nonblock lurette_stdout_in
type draw_mode = Verteces | Edges | Inside
type tok = Genlex.token Stream.t
(**************************************************************************)
......@@ -80,6 +81,12 @@ class customized_callbacks = object(self)
(
display (str ^ "\n")
)
else if
String.length str > 57 && String.sub str 0 34 = "The random engine was initialized "
then
let seed_str = String.sub str 48 ((String.length str) - 48) in
self#top_xlurette#user_seed#set_text seed_str;
display ("*****" ^ str ^ "\n")
else if
String.length str > 7 && String.sub str 0 8 = "<lurette"
then
......@@ -92,7 +99,9 @@ class customized_callbacks = object(self)
let dot_index = String.index str ':' in
let step_str = String.sub str 9 (dot_index-9) in
let stepf = float_of_string step_str in
progress stepf
progress stepf;
if self#top_xlurette#radiobutton_verbose_on#active then
display (str ^ " ******\n")
)
else
display (str ^ "\n")
......@@ -232,7 +241,8 @@ class customized_callbacks = object(self)
flush oc;
flush stderr
method run_lurette () =
method get_all_cmds () =
let sut = self#top_xlurette#sut_name#text in
let cmd_sut = ("set_sut \"" ^ sut ^ "\"\n") in
......@@ -293,70 +303,41 @@ class customized_callbacks = object(self)
else "set_verbose false \n"
in
let cmd = "run\n" in
let cmd_show_step =
if (self#top_xlurette#radiobutton_show_step_on#active
|| self#top_xlurette#radiobutton_verbose_on#active )
then "set_show_step true \n"
else "set_show_step false \n"
in
cmd_oracle ^ cmd_test_length ^ cmd_formula_nb ^ cmd_draw_nb
^ cmd_rif_file ^ cmd_env ^ cmd_sut ^ cmd_step ^ cmd_seed
^ cmd_draw_mode ^ cmd_call_sim2chro ^ cmd_display_local
^ cmd_verbose ^ cmd_show_step
method run_lurette () =
let all_cmds = (self#get_all_cmds ()) ^ "run\n" in
if self#top_xlurette#radiobutton_step_yes#active
then self#top_step_by_step_window#step_by_step_window#show ();
output_string oc cmd_oracle ;
if debug then output_string stderr cmd_oracle;
flush oc;
output_string oc cmd_test_length ;
if debug then output_string stderr cmd_test_length;
flush oc;
output_string oc cmd_formula_nb ;
if debug then output_string stderr cmd_formula_nb;
flush oc;
output_string oc cmd_draw_nb ;
if debug then output_string stderr cmd_draw_nb;
output_string oc all_cmds ;
if debug then output_string stderr all_cmds;
flush oc;
flush stderr
output_string oc cmd_rif_file ;
if debug then output_string stderr cmd_rif_file;
flush oc;
output_string oc cmd_env ;
if debug then output_string stderr cmd_env;
flush oc;
output_string oc cmd_sut ;
if debug then output_string stderr cmd_sut;
flush oc;
output_string oc cmd_step ;
if debug then output_string stderr cmd_step;
flush oc;
output_string oc cmd_seed ;
if debug then output_string stderr cmd_seed;
flush oc;
output_string oc cmd_draw_mode ;
if debug then output_string stderr cmd_draw_mode;
flush oc;
output_string oc cmd_call_sim2chro ;
if debug then output_string stderr cmd_call_sim2chro;
flush oc;
output_string oc cmd_display_local ;
if debug then output_string stderr cmd_display_local;
flush oc;
output_string oc cmd_verbose ;
if debug then output_string stderr cmd_verbose;
flush oc;
output_string oc cmd ;
if debug then output_string stderr cmd;
flush oc;
method save_parameters () =
let msg = "Saving current parameters in .lurette_rc \n"
and cmds = self#get_all_cmds ()
and file = open_out ".lurette_rc"
in
output_string file cmds;
close_out file;
self#top_xlurette#output_window#insert msg
flush stderr
method save_session () =
output_string oc ("pack " ^ self#top_xlurette#saved_session_file#text ^ " \n");
......@@ -388,6 +369,11 @@ class customized_callbacks = object(self)
method set_test_length i =
self#top_xlurette#test_length#set_text (string_of_int i)
method get_seed () =
int_of_string self#top_xlurette#user_seed#text
method set_seed i =
self#top_xlurette#user_seed#set_text (string_of_int i)
method get_formula_nb () =
int_of_string self#top_xlurette#formula_nb#text
method set_formula_nb i =
......@@ -414,6 +400,97 @@ class customized_callbacks = object(self)
| Verteces -> self#top_xlurette#radiobutton_verteces#set_active true
| Inside -> self#top_xlurette#radiobutton_inside#set_active true
method read_commands line =
let lexer = Genlex.make_lexer [] in
let (remove_extension : string -> string) =
fun str ->
let file_ext = Filename.basename str
and dir = Filename.dirname str in
let file = try Filename.chop_extension file_ext with _ -> file_ext in
(Filename.concat dir file)
in
let (parse_file_name : tok -> string) =
fun tok ->
try
match tok with parser
| [< 'Genlex.String str >] ->
if str = "" then "" else remove_extension str
| [< 'Genlex.Ident id >] -> id
| [< >] -> ""
with _ ->
print_string
"*** parse error: cannot parse that file name.\n";
flush stdout;
""
in
let rec (parse_env : tok -> string) =
fun tok ->
try
(
match tok with parser
| [< 'Genlex.Ident "x" ; tail = parse_env >] -> (" x " ^ tail)
| [< 'Genlex.String str ; tail = parse_env >] ->
((remove_extension str) ^ ".luc " ^ tail)
| [< 'Genlex.Ident id ; tail = parse_env >] -> (id ^ ".luc " ^ tail)
| [< _ >] -> ""
)
with e ->
print_string (Printexc.to_string e);
print_string
"*** Error when parsing the environment field.\n";
flush stdout;
""
in
let read_cmd tok =
(* : 'a -> tok -> unit) = *)
( match tok with parser
| [< 'Genlex.Ident "set_draw_mode" ;'Genlex.Ident id >] ->
(
match id with
"inside" -> self#set_draw_mode Inside
| "edges" -> self#set_draw_mode Edges
| "verteces" -> self#set_draw_mode Verteces
| _ -> print_string ("Unknown draw mode (" ^ id ^ ")\n")
)
| [< 'Genlex.Ident "set_env" ; 'Genlex.String str >] ->
self#set_env str
| [< 'Genlex.Ident "set_sut" ; str = parse_file_name >] ->
self#set_sut str