#N canvas 232 0 651 599 10; #X obj 85 569 gfsm; #X text 15 569 SEE ALSO:; #X text 41 6 gfsm_state : position "pointer" for finite-state automata ; #X text 267 563 Bryan Jurish ; #X text 17 79 INLETS:; #X text 35 93 1 - control messages; #X text 255 82 OUTLETS:; #X text 271 95 1 - value outlet; #X text 18 30 SYNTAX: gfsm_state [FSM_NAME [STATE_ID]]; #X text 52 47 FSM_NAME - symbolic name of a gfsm_automaton; #X text 52 61 STATE_ID - numeric Id of the target state; #X obj 26 531 print gfsm-state-out; #X msg 44 182 id; #X text 164 185 "id" : get current state Id; #X text 135 205 "set ID" : set current state Id; #X msg 50 205 set 0; #X msg 26 127 automaton; #X msg 31 149 automaton fsm-help; #X text 197 128 "automaton" : use an object-local machine; #X text 163 151 "automaton NAME" : use a shared machine named NAME ; #X msg 58 239 degree; #X text 137 240 "degree" : get number of outgoing arcs (linear time) ; #X msg 58 295 arc_first; #X msg 58 317 arc_next; #X msg 59 382 arc_reset; #X obj 26 508 gfsm_state fsm-help 0; #X text 229 398 arcs are output as a list:; #X text 277 414 NEXT_STATEID LO HI WEIGHT; #X text 306 359 (negative labels are ignored); #X msg 58 345 arc_seek 202 -1; #X text 208 294 "arc_first" : get first outgoing arc; #X text 214 318 "arc_next" : get next available outgoing arc (maybe first); #X text 173 344 "arc_seek LO HI" : get next arc with labels LO:HI; #X text 207 383 "arc_reset" : close internal arc iterator; #X msg 54 447 add_weight 1 -1 101 0.9; #X text 233 450 "add_weight ID LO HI W" : add W to 1st arc to state ID; #X text 416 463 with labels LO:HI; #X text 271 479 (implicitly resets arc iterator); #X connect 12 0 25 0; #X connect 15 0 25 0; #X connect 16 0 25 0; #X connect 17 0 25 0; #X connect 20 0 25 0; #X connect 22 0 25 0; #X connect 23 0 25 0; #X connect 24 0 25 0; #X connect 25 0 11 0; #X connect 29 0 25 0; #X connect 34 0 25 0;