Closed jbeard4 closed 9 years ago
Consider the example (generated) SCXML:
<?xml version="1.0" encoding="UTF-8"?> <scxml xmlns="http://www.w3.org/2005/07/scxml" name="cli-parser" version="1.0"> <datamodel> <data id="tabtabData"/> <data id="tabtab"/> </datamodel> <state id="start"> <transition target="command_trie" event="init"> <assign location="tabtabData" expr="_event.data.tabtabData"/> <assign location="tabtab" expr="_event.data.tabtab"/> </transition> </state> <state id="command_trie"> <state id="command_initial"> <transition target="command_s" event="s"/> <transition target="command_c" event="c"/> <transition target="command_l" event="l"/> <transition target="command_r" event="r"/> <transition target="command_i" event="i"/> <transition target="command_v" event="v"/> <transition target="command_h" event="h"/> <state id="command_initial_initial"> <transition target="command_initial_done" event="tabtab"/> </state> <final id="command_initial_done"> <onentry> <script> tabtab.log(["save","cat","ls","run","send","interact","rm","subscribe","viz","log","help"],tabtabData); </script> </onentry> </final> </state> <state id="command_s"> <transition target="command_sa" event="a"/> <transition target="command_se" event="e"/> <transition target="command_su" event="u"/> <state id="command_s_initial"> <transition target="command_s_done" event="tabtab"/> </state> <final id="command_s_done"> <onentry> <script> tabtab.log(["save","send","subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_sa"> <transition target="command_sav" event="v"/> <state id="command_sa_initial"> <transition target="command_sa_done" event="tabtab"/> </state> <final id="command_sa_done"> <onentry> <script> tabtab.log(["save"],tabtabData); </script> </onentry> </final> </state> <state id="command_sav"> <transition target="command_save" event="e"/> <state id="command_sav_initial"> <transition target="command_sav_done" event="tabtab"/> </state> <final id="command_sav_done"> <onentry> <script> tabtab.log(["save"],tabtabData); </script> </onentry> </final> </state> <state id="command_save"> <state id="command_save_initial"> <transition target="command_save_done" event="tabtab"/> <state id="command_save_options_or_arguments"> <state id="command_save_arguments"> <transition event="-" target="command_save_short_options_trie"/> </state> <state id="command_save_short_options_trie"> <transition event="-" target="command_save_long_options_trie"/> </state> <state id="command_save_long_options_trie"> <state id="option_save_initial"> <transition target="option_save_s" event="s"/> <transition target="option_save_w" event="w"/> <transition target="option_save_h" event="h"/> <state id="option_save_initial_initial"> <transition target="option_save_initial_done" event="tabtab"/> </state> <final id="option_save_initial_done"> <onentry> <script> tabtab.log(["statechartname","watch","host"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_s"> <transition target="option_save_st" event="t"/> <state id="option_save_s_initial"> <transition target="option_save_s_done" event="tabtab"/> </state> <final id="option_save_s_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_st"> <transition target="option_save_sta" event="a"/> <state id="option_save_st_initial"> <transition target="option_save_st_done" event="tabtab"/> </state> <final id="option_save_st_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_sta"> <transition target="option_save_stat" event="t"/> <state id="option_save_sta_initial"> <transition target="option_save_sta_done" event="tabtab"/> </state> <final id="option_save_sta_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_stat"> <transition target="option_save_state" event="e"/> <state id="option_save_stat_initial"> <transition target="option_save_stat_done" event="tabtab"/> </state> <final id="option_save_stat_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_state"> <transition target="option_save_statec" event="c"/> <state id="option_save_state_initial"> <transition target="option_save_state_done" event="tabtab"/> </state> <final id="option_save_state_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statec"> <transition target="option_save_statech" event="h"/> <state id="option_save_statec_initial"> <transition target="option_save_statec_done" event="tabtab"/> </state> <final id="option_save_statec_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statech"> <transition target="option_save_statecha" event="a"/> <state id="option_save_statech_initial"> <transition target="option_save_statech_done" event="tabtab"/> </state> <final id="option_save_statech_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statecha"> <transition target="option_save_statechar" event="r"/> <state id="option_save_statecha_initial"> <transition target="option_save_statecha_done" event="tabtab"/> </state> <final id="option_save_statecha_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechar"> <transition target="option_save_statechart" event="t"/> <state id="option_save_statechar_initial"> <transition target="option_save_statechar_done" event="tabtab"/> </state> <final id="option_save_statechar_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechart"> <transition target="option_save_statechartn" event="n"/> <state id="option_save_statechart_initial"> <transition target="option_save_statechart_done" event="tabtab"/> </state> <final id="option_save_statechart_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechartn"> <transition target="option_save_statechartna" event="a"/> <state id="option_save_statechartn_initial"> <transition target="option_save_statechartn_done" event="tabtab"/> </state> <final id="option_save_statechartn_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechartna"> <transition target="option_save_statechartnam" event="m"/> <state id="option_save_statechartna_initial"> <transition target="option_save_statechartna_done" event="tabtab"/> </state> <final id="option_save_statechartna_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechartnam"> <transition target="option_save_statechartname" event="e"/> <state id="option_save_statechartnam_initial"> <transition target="option_save_statechartnam_done" event="tabtab"/> </state> <final id="option_save_statechartnam_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_statechartname"> <state id="option_save_statechartname_initial"> <transition target="option_save_statechartname_done" event="tabtab"/> </state> <final id="option_save_statechartname_done"> <onentry> <script> tabtab.log(["statechartname"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_w"> <transition target="option_save_wa" event="a"/> <state id="option_save_w_initial"> <transition target="option_save_w_done" event="tabtab"/> </state> <final id="option_save_w_done"> <onentry> <script> tabtab.log(["watch"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_wa"> <transition target="option_save_wat" event="t"/> <state id="option_save_wa_initial"> <transition target="option_save_wa_done" event="tabtab"/> </state> <final id="option_save_wa_done"> <onentry> <script> tabtab.log(["watch"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_wat"> <transition target="option_save_watc" event="c"/> <state id="option_save_wat_initial"> <transition target="option_save_wat_done" event="tabtab"/> </state> <final id="option_save_wat_done"> <onentry> <script> tabtab.log(["watch"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_watc"> <transition target="option_save_watch" event="h"/> <state id="option_save_watc_initial"> <transition target="option_save_watc_done" event="tabtab"/> </state> <final id="option_save_watc_done"> <onentry> <script> tabtab.log(["watch"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_watch"> <state id="option_save_watch_initial"> <transition target="option_save_watch_done" event="tabtab"/> </state> <final id="option_save_watch_done"> <onentry> <script> tabtab.log(["watch"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_h"> <transition target="option_save_ho" event="o"/> <state id="option_save_h_initial"> <transition target="option_save_h_done" event="tabtab"/> </state> <final id="option_save_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_ho"> <transition target="option_save_hos" event="s"/> <state id="option_save_ho_initial"> <transition target="option_save_ho_done" event="tabtab"/> </state> <final id="option_save_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_hos"> <transition target="option_save_host" event="t"/> <state id="option_save_hos_initial"> <transition target="option_save_hos_done" event="tabtab"/> </state> <final id="option_save_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_save_host"> <state id="option_save_host_initial"> <transition target="option_save_host_done" event="tabtab"/> </state> <final id="option_save_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_save_done"> <onentry> <script> tabtab.log(["save"],tabtabData); </script> </onentry> </final> </state> <state id="command_c"> <transition target="command_ca" event="a"/> <state id="command_c_initial"> <transition target="command_c_done" event="tabtab"/> </state> <final id="command_c_done"> <onentry> <script> tabtab.log(["cat"],tabtabData); </script> </onentry> </final> </state> <state id="command_ca"> <transition target="command_cat" event="t"/> <state id="command_ca_initial"> <transition target="command_ca_done" event="tabtab"/> </state> <final id="command_ca_done"> <onentry> <script> tabtab.log(["cat"],tabtabData); </script> </onentry> </final> </state> <state id="command_cat"> <state id="command_cat_initial"> <transition target="command_cat_done" event="tabtab"/> <state id="command_cat_options_or_arguments"> <state id="command_cat_arguments"> <transition event="-" target="command_cat_short_options_trie"/> </state> <state id="command_cat_short_options_trie"> <transition event="-" target="command_cat_long_options_trie"/> </state> <state id="command_cat_long_options_trie"> <state id="option_cat_initial"> <transition target="option_cat_h" event="h"/> <state id="option_cat_initial_initial"> <transition target="option_cat_initial_done" event="tabtab"/> </state> <final id="option_cat_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_cat_h"> <transition target="option_cat_ho" event="o"/> <state id="option_cat_h_initial"> <transition target="option_cat_h_done" event="tabtab"/> </state> <final id="option_cat_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_cat_ho"> <transition target="option_cat_hos" event="s"/> <state id="option_cat_ho_initial"> <transition target="option_cat_ho_done" event="tabtab"/> </state> <final id="option_cat_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_cat_hos"> <transition target="option_cat_host" event="t"/> <state id="option_cat_hos_initial"> <transition target="option_cat_hos_done" event="tabtab"/> </state> <final id="option_cat_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_cat_host"> <state id="option_cat_host_initial"> <transition target="option_cat_host_done" event="tabtab"/> </state> <final id="option_cat_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_cat_done"> <onentry> <script> tabtab.log(["cat"],tabtabData); </script> </onentry> </final> </state> <state id="command_l"> <transition target="command_ls" event="s"/> <transition target="command_lo" event="o"/> <state id="command_l_initial"> <transition target="command_l_done" event="tabtab"/> </state> <final id="command_l_done"> <onentry> <script> tabtab.log(["ls","log"],tabtabData); </script> </onentry> </final> </state> <state id="command_ls"> <state id="command_ls_initial"> <transition target="command_ls_done" event="tabtab"/> <state id="command_ls_options_or_arguments"> <state id="command_ls_arguments"> <transition event="-" target="command_ls_short_options_trie"/> </state> <state id="command_ls_short_options_trie"> <transition event="-" target="command_ls_long_options_trie"/> </state> <state id="command_ls_long_options_trie"> <state id="option_ls_initial"> <transition target="option_ls_h" event="h"/> <state id="option_ls_initial_initial"> <transition target="option_ls_initial_done" event="tabtab"/> </state> <final id="option_ls_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_ls_h"> <transition target="option_ls_ho" event="o"/> <state id="option_ls_h_initial"> <transition target="option_ls_h_done" event="tabtab"/> </state> <final id="option_ls_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_ls_ho"> <transition target="option_ls_hos" event="s"/> <state id="option_ls_ho_initial"> <transition target="option_ls_ho_done" event="tabtab"/> </state> <final id="option_ls_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_ls_hos"> <transition target="option_ls_host" event="t"/> <state id="option_ls_hos_initial"> <transition target="option_ls_hos_done" event="tabtab"/> </state> <final id="option_ls_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_ls_host"> <state id="option_ls_host_initial"> <transition target="option_ls_host_done" event="tabtab"/> </state> <final id="option_ls_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_ls_done"> <onentry> <script> tabtab.log(["ls"],tabtabData); </script> </onentry> </final> </state> <state id="command_r"> <transition target="command_ru" event="u"/> <transition target="command_rm" event="m"/> <state id="command_r_initial"> <transition target="command_r_done" event="tabtab"/> </state> <final id="command_r_done"> <onentry> <script> tabtab.log(["run","rm"],tabtabData); </script> </onentry> </final> </state> <state id="command_ru"> <transition target="command_run" event="n"/> <state id="command_ru_initial"> <transition target="command_ru_done" event="tabtab"/> </state> <final id="command_ru_done"> <onentry> <script> tabtab.log(["run"],tabtabData); </script> </onentry> </final> </state> <state id="command_run"> <state id="command_run_initial"> <transition target="command_run_done" event="tabtab"/> <state id="command_run_options_or_arguments"> <state id="command_run_arguments"> <transition event="-" target="command_run_short_options_trie"/> </state> <state id="command_run_short_options_trie"> <transition event="-" target="command_run_long_options_trie"/> </state> <state id="command_run_long_options_trie"> <state id="option_run_initial"> <transition target="option_run_i" event="i"/> <transition target="option_run_h" event="h"/> <state id="option_run_initial_initial"> <transition target="option_run_initial_done" event="tabtab"/> </state> <final id="option_run_initial_done"> <onentry> <script> tabtab.log(["instanceId","host"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_i"> <transition target="option_run_in" event="n"/> <state id="option_run_i_initial"> <transition target="option_run_i_done" event="tabtab"/> </state> <final id="option_run_i_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_in"> <transition target="option_run_ins" event="s"/> <state id="option_run_in_initial"> <transition target="option_run_in_done" event="tabtab"/> </state> <final id="option_run_in_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_ins"> <transition target="option_run_inst" event="t"/> <state id="option_run_ins_initial"> <transition target="option_run_ins_done" event="tabtab"/> </state> <final id="option_run_ins_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_inst"> <transition target="option_run_insta" event="a"/> <state id="option_run_inst_initial"> <transition target="option_run_inst_done" event="tabtab"/> </state> <final id="option_run_inst_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_insta"> <transition target="option_run_instan" event="n"/> <state id="option_run_insta_initial"> <transition target="option_run_insta_done" event="tabtab"/> </state> <final id="option_run_insta_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_instan"> <transition target="option_run_instanc" event="c"/> <state id="option_run_instan_initial"> <transition target="option_run_instan_done" event="tabtab"/> </state> <final id="option_run_instan_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_instanc"> <transition target="option_run_instance" event="e"/> <state id="option_run_instanc_initial"> <transition target="option_run_instanc_done" event="tabtab"/> </state> <final id="option_run_instanc_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_instance"> <transition target="option_run_instanceI" event="I"/> <state id="option_run_instance_initial"> <transition target="option_run_instance_done" event="tabtab"/> </state> <final id="option_run_instance_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_instanceI"> <transition target="option_run_instanceId" event="d"/> <state id="option_run_instanceI_initial"> <transition target="option_run_instanceI_done" event="tabtab"/> </state> <final id="option_run_instanceI_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_instanceId"> <state id="option_run_instanceId_initial"> <transition target="option_run_instanceId_done" event="tabtab"/> </state> <final id="option_run_instanceId_done"> <onentry> <script> tabtab.log(["instanceId"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_h"> <transition target="option_run_ho" event="o"/> <state id="option_run_h_initial"> <transition target="option_run_h_done" event="tabtab"/> </state> <final id="option_run_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_ho"> <transition target="option_run_hos" event="s"/> <state id="option_run_ho_initial"> <transition target="option_run_ho_done" event="tabtab"/> </state> <final id="option_run_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_hos"> <transition target="option_run_host" event="t"/> <state id="option_run_hos_initial"> <transition target="option_run_hos_done" event="tabtab"/> </state> <final id="option_run_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_run_host"> <state id="option_run_host_initial"> <transition target="option_run_host_done" event="tabtab"/> </state> <final id="option_run_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_run_done"> <onentry> <script> tabtab.log(["run"],tabtabData); </script> </onentry> </final> </state> <state id="command_se"> <transition target="command_sen" event="n"/> <state id="command_se_initial"> <transition target="command_se_done" event="tabtab"/> </state> <final id="command_se_done"> <onentry> <script> tabtab.log(["send"],tabtabData); </script> </onentry> </final> </state> <state id="command_sen"> <transition target="command_send" event="d"/> <state id="command_sen_initial"> <transition target="command_sen_done" event="tabtab"/> </state> <final id="command_sen_done"> <onentry> <script> tabtab.log(["send"],tabtabData); </script> </onentry> </final> </state> <state id="command_send"> <state id="command_send_initial"> <transition target="command_send_done" event="tabtab"/> <state id="command_send_options_or_arguments"> <state id="command_send_arguments"> <transition event="-" target="command_send_short_options_trie"/> </state> <state id="command_send_short_options_trie"> <transition event="-" target="command_send_long_options_trie"/> </state> <state id="command_send_long_options_trie"> <state id="option_send_initial"> <transition target="option_send_h" event="h"/> <state id="option_send_initial_initial"> <transition target="option_send_initial_done" event="tabtab"/> </state> <final id="option_send_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_send_h"> <transition target="option_send_ho" event="o"/> <state id="option_send_h_initial"> <transition target="option_send_h_done" event="tabtab"/> </state> <final id="option_send_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_send_ho"> <transition target="option_send_hos" event="s"/> <state id="option_send_ho_initial"> <transition target="option_send_ho_done" event="tabtab"/> </state> <final id="option_send_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_send_hos"> <transition target="option_send_host" event="t"/> <state id="option_send_hos_initial"> <transition target="option_send_hos_done" event="tabtab"/> </state> <final id="option_send_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_send_host"> <state id="option_send_host_initial"> <transition target="option_send_host_done" event="tabtab"/> </state> <final id="option_send_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_send_done"> <onentry> <script> tabtab.log(["send"],tabtabData); </script> </onentry> </final> </state> <state id="command_i"> <transition target="command_in" event="n"/> <state id="command_i_initial"> <transition target="command_i_done" event="tabtab"/> </state> <final id="command_i_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_in"> <transition target="command_int" event="t"/> <state id="command_in_initial"> <transition target="command_in_done" event="tabtab"/> </state> <final id="command_in_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_int"> <transition target="command_inte" event="e"/> <state id="command_int_initial"> <transition target="command_int_done" event="tabtab"/> </state> <final id="command_int_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_inte"> <transition target="command_inter" event="r"/> <state id="command_inte_initial"> <transition target="command_inte_done" event="tabtab"/> </state> <final id="command_inte_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_inter"> <transition target="command_intera" event="a"/> <state id="command_inter_initial"> <transition target="command_inter_done" event="tabtab"/> </state> <final id="command_inter_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_intera"> <transition target="command_interac" event="c"/> <state id="command_intera_initial"> <transition target="command_intera_done" event="tabtab"/> </state> <final id="command_intera_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_interac"> <transition target="command_interact" event="t"/> <state id="command_interac_initial"> <transition target="command_interac_done" event="tabtab"/> </state> <final id="command_interac_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_interact"> <state id="command_interact_initial"> <transition target="command_interact_done" event="tabtab"/> <state id="command_interact_options_or_arguments"> <state id="command_interact_arguments"> <transition event="-" target="command_interact_short_options_trie"/> </state> <state id="command_interact_short_options_trie"> <transition event="-" target="command_interact_long_options_trie"/> </state> <state id="command_interact_long_options_trie"> <state id="option_interact_initial"> <transition target="option_interact_h" event="h"/> <state id="option_interact_initial_initial"> <transition target="option_interact_initial_done" event="tabtab"/> </state> <final id="option_interact_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_interact_h"> <transition target="option_interact_ho" event="o"/> <state id="option_interact_h_initial"> <transition target="option_interact_h_done" event="tabtab"/> </state> <final id="option_interact_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_interact_ho"> <transition target="option_interact_hos" event="s"/> <state id="option_interact_ho_initial"> <transition target="option_interact_ho_done" event="tabtab"/> </state> <final id="option_interact_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_interact_hos"> <transition target="option_interact_host" event="t"/> <state id="option_interact_hos_initial"> <transition target="option_interact_hos_done" event="tabtab"/> </state> <final id="option_interact_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_interact_host"> <state id="option_interact_host_initial"> <transition target="option_interact_host_done" event="tabtab"/> </state> <final id="option_interact_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_interact_done"> <onentry> <script> tabtab.log(["interact"],tabtabData); </script> </onentry> </final> </state> <state id="command_rm"> <state id="command_rm_initial"> <transition target="command_rm_done" event="tabtab"/> <state id="command_rm_options_or_arguments"> <state id="command_rm_arguments"> <transition event="-" target="command_rm_short_options_trie"/> </state> <state id="command_rm_short_options_trie"> <transition event="-" target="command_rm_long_options_trie"/> </state> <state id="command_rm_long_options_trie"> <state id="option_rm_initial"> <transition target="option_rm_h" event="h"/> <state id="option_rm_initial_initial"> <transition target="option_rm_initial_done" event="tabtab"/> </state> <final id="option_rm_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_rm_h"> <transition target="option_rm_ho" event="o"/> <state id="option_rm_h_initial"> <transition target="option_rm_h_done" event="tabtab"/> </state> <final id="option_rm_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_rm_ho"> <transition target="option_rm_hos" event="s"/> <state id="option_rm_ho_initial"> <transition target="option_rm_ho_done" event="tabtab"/> </state> <final id="option_rm_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_rm_hos"> <transition target="option_rm_host" event="t"/> <state id="option_rm_hos_initial"> <transition target="option_rm_hos_done" event="tabtab"/> </state> <final id="option_rm_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_rm_host"> <state id="option_rm_host_initial"> <transition target="option_rm_host_done" event="tabtab"/> </state> <final id="option_rm_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_rm_done"> <onentry> <script> tabtab.log(["rm"],tabtabData); </script> </onentry> </final> </state> <state id="command_su"> <transition target="command_sub" event="b"/> <state id="command_su_initial"> <transition target="command_su_done" event="tabtab"/> </state> <final id="command_su_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_sub"> <transition target="command_subs" event="s"/> <state id="command_sub_initial"> <transition target="command_sub_done" event="tabtab"/> </state> <final id="command_sub_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subs"> <transition target="command_subsc" event="c"/> <state id="command_subs_initial"> <transition target="command_subs_done" event="tabtab"/> </state> <final id="command_subs_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subsc"> <transition target="command_subscr" event="r"/> <state id="command_subsc_initial"> <transition target="command_subsc_done" event="tabtab"/> </state> <final id="command_subsc_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subscr"> <transition target="command_subscri" event="i"/> <state id="command_subscr_initial"> <transition target="command_subscr_done" event="tabtab"/> </state> <final id="command_subscr_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subscri"> <transition target="command_subscrib" event="b"/> <state id="command_subscri_initial"> <transition target="command_subscri_done" event="tabtab"/> </state> <final id="command_subscri_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subscrib"> <transition target="command_subscribe" event="e"/> <state id="command_subscrib_initial"> <transition target="command_subscrib_done" event="tabtab"/> </state> <final id="command_subscrib_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_subscribe"> <state id="command_subscribe_initial"> <transition target="command_subscribe_done" event="tabtab"/> <state id="command_subscribe_options_or_arguments"> <state id="command_subscribe_arguments"> <transition event="-" target="command_subscribe_short_options_trie"/> </state> <state id="command_subscribe_short_options_trie"> <transition event="-" target="command_subscribe_long_options_trie"/> </state> <state id="command_subscribe_long_options_trie"> <state id="option_subscribe_initial"> <transition target="option_subscribe_h" event="h"/> <state id="option_subscribe_initial_initial"> <transition target="option_subscribe_initial_done" event="tabtab"/> </state> <final id="option_subscribe_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_subscribe_h"> <transition target="option_subscribe_ho" event="o"/> <state id="option_subscribe_h_initial"> <transition target="option_subscribe_h_done" event="tabtab"/> </state> <final id="option_subscribe_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_subscribe_ho"> <transition target="option_subscribe_hos" event="s"/> <state id="option_subscribe_ho_initial"> <transition target="option_subscribe_ho_done" event="tabtab"/> </state> <final id="option_subscribe_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_subscribe_hos"> <transition target="option_subscribe_host" event="t"/> <state id="option_subscribe_hos_initial"> <transition target="option_subscribe_hos_done" event="tabtab"/> </state> <final id="option_subscribe_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_subscribe_host"> <state id="option_subscribe_host_initial"> <transition target="option_subscribe_host_done" event="tabtab"/> </state> <final id="option_subscribe_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_subscribe_done"> <onentry> <script> tabtab.log(["subscribe"],tabtabData); </script> </onentry> </final> </state> <state id="command_v"> <transition target="command_vi" event="i"/> <state id="command_v_initial"> <transition target="command_v_done" event="tabtab"/> </state> <final id="command_v_done"> <onentry> <script> tabtab.log(["viz"],tabtabData); </script> </onentry> </final> </state> <state id="command_vi"> <transition target="command_viz" event="z"/> <state id="command_vi_initial"> <transition target="command_vi_done" event="tabtab"/> </state> <final id="command_vi_done"> <onentry> <script> tabtab.log(["viz"],tabtabData); </script> </onentry> </final> </state> <state id="command_viz"> <state id="command_viz_initial"> <transition target="command_viz_done" event="tabtab"/> <state id="command_viz_options_or_arguments"> <state id="command_viz_arguments"> <transition event="-" target="command_viz_short_options_trie"/> </state> <state id="command_viz_short_options_trie"> <transition event="-" target="command_viz_long_options_trie"/> </state> <state id="command_viz_long_options_trie"> <state id="option_viz_initial"> <transition target="option_viz_h" event="h"/> <transition target="option_viz_b" event="b"/> <state id="option_viz_initial_initial"> <transition target="option_viz_initial_done" event="tabtab"/> </state> <final id="option_viz_initial_done"> <onentry> <script> tabtab.log(["host","browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_h"> <transition target="option_viz_ho" event="o"/> <state id="option_viz_h_initial"> <transition target="option_viz_h_done" event="tabtab"/> </state> <final id="option_viz_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_ho"> <transition target="option_viz_hos" event="s"/> <state id="option_viz_ho_initial"> <transition target="option_viz_ho_done" event="tabtab"/> </state> <final id="option_viz_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_hos"> <transition target="option_viz_host" event="t"/> <state id="option_viz_hos_initial"> <transition target="option_viz_hos_done" event="tabtab"/> </state> <final id="option_viz_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_host"> <state id="option_viz_host_initial"> <transition target="option_viz_host_done" event="tabtab"/> </state> <final id="option_viz_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_b"> <transition target="option_viz_br" event="r"/> <state id="option_viz_b_initial"> <transition target="option_viz_b_done" event="tabtab"/> </state> <final id="option_viz_b_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_br"> <transition target="option_viz_bro" event="o"/> <state id="option_viz_br_initial"> <transition target="option_viz_br_done" event="tabtab"/> </state> <final id="option_viz_br_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_bro"> <transition target="option_viz_brow" event="w"/> <state id="option_viz_bro_initial"> <transition target="option_viz_bro_done" event="tabtab"/> </state> <final id="option_viz_bro_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_brow"> <transition target="option_viz_brows" event="s"/> <state id="option_viz_brow_initial"> <transition target="option_viz_brow_done" event="tabtab"/> </state> <final id="option_viz_brow_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_brows"> <transition target="option_viz_browse" event="e"/> <state id="option_viz_brows_initial"> <transition target="option_viz_brows_done" event="tabtab"/> </state> <final id="option_viz_brows_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_browse"> <transition target="option_viz_browser" event="r"/> <state id="option_viz_browse_initial"> <transition target="option_viz_browse_done" event="tabtab"/> </state> <final id="option_viz_browse_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> <state id="option_viz_browser"> <state id="option_viz_browser_initial"> <transition target="option_viz_browser_done" event="tabtab"/> </state> <final id="option_viz_browser_done"> <onentry> <script> tabtab.log(["browser"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_viz_done"> <onentry> <script> tabtab.log(["viz"],tabtabData); </script> </onentry> </final> </state> <state id="command_lo"> <transition target="command_log" event="g"/> <state id="command_lo_initial"> <transition target="command_lo_done" event="tabtab"/> </state> <final id="command_lo_done"> <onentry> <script> tabtab.log(["log"],tabtabData); </script> </onentry> </final> </state> <state id="command_log"> <state id="command_log_initial"> <transition target="command_log_done" event="tabtab"/> <state id="command_log_options_or_arguments"> <state id="command_log_arguments"> <transition event="-" target="command_log_short_options_trie"/> </state> <state id="command_log_short_options_trie"> <transition event="-" target="command_log_long_options_trie"/> </state> <state id="command_log_long_options_trie"> <state id="option_log_initial"> <transition target="option_log_h" event="h"/> <state id="option_log_initial_initial"> <transition target="option_log_initial_done" event="tabtab"/> </state> <final id="option_log_initial_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_log_h"> <transition target="option_log_ho" event="o"/> <state id="option_log_h_initial"> <transition target="option_log_h_done" event="tabtab"/> </state> <final id="option_log_h_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_log_ho"> <transition target="option_log_hos" event="s"/> <state id="option_log_ho_initial"> <transition target="option_log_ho_done" event="tabtab"/> </state> <final id="option_log_ho_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_log_hos"> <transition target="option_log_host" event="t"/> <state id="option_log_hos_initial"> <transition target="option_log_hos_done" event="tabtab"/> </state> <final id="option_log_hos_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> <state id="option_log_host"> <state id="option_log_host_initial"> <transition target="option_log_host_done" event="tabtab"/> </state> <final id="option_log_host_done"> <onentry> <script> tabtab.log(["host"],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_log_done"> <onentry> <script> tabtab.log(["log"],tabtabData); </script> </onentry> </final> </state> <state id="command_h"> <transition target="command_he" event="e"/> <state id="command_h_initial"> <transition target="command_h_done" event="tabtab"/> </state> <final id="command_h_done"> <onentry> <script> tabtab.log(["help"],tabtabData); </script> </onentry> </final> </state> <state id="command_he"> <transition target="command_hel" event="l"/> <state id="command_he_initial"> <transition target="command_he_done" event="tabtab"/> </state> <final id="command_he_done"> <onentry> <script> tabtab.log(["help"],tabtabData); </script> </onentry> </final> </state> <state id="command_hel"> <transition target="command_help" event="p"/> <state id="command_hel_initial"> <transition target="command_hel_done" event="tabtab"/> </state> <final id="command_hel_done"> <onentry> <script> tabtab.log(["help"],tabtabData); </script> </onentry> </final> </state> <state id="command_help"> <state id="command_help_initial"> <transition target="command_help_done" event="tabtab"/> <state id="command_help_options_or_arguments"> <state id="command_help_arguments"> <transition event="-" target="command_help_short_options_trie"/> </state> <state id="command_help_short_options_trie"> <transition event="-" target="command_help_long_options_trie"/> </state> <state id="command_help_long_options_trie"> <state id="option_help_initial"> <state id="option_help_initial_initial"> <transition target="option_help_initial_done" event="tabtab"/> </state> <final id="option_help_initial_done"> <onentry> <script> tabtab.log([],tabtabData); </script> </onentry> </final> </state> </state> </state> </state> <final id="command_help_done"> <onentry> <script> tabtab.log(["help"],tabtabData); </script> </onentry> </final> </state> </state> <state id="done"/> <state id="parser_error"/> </scxml>
This produces a very large statechart which exceeds the boundaries of the canvas region that can be dragged.
Consider the example (generated) SCXML:
This produces a very large statechart which exceeds the boundaries of the canvas region that can be dragged.