Thanks Raul.
I realized I do not understand your S0, how you come up with it.
Shouldn't it be just 2 state machine? And if so why the following does not
work?
test1=: {{)n
1000ddd
2000
ab3000
11111xxx
11
22
}}
m0=: a.=LF
s0=: +.".>cutLF {{)n
0j0 1j0 NB. when r=0 and c=0 we do nothing, when r=0 and c=1 we do
nothing but go to row=1
0j0 0j2 NB. when r=1 and c=0 we do nothing and go to row=0, when next
LF (row=1, col=1, we emit word with setting new beginning of new word and
go to row=0
}}
(0;s0;m0;0 0 0 1) ;:test1
|index error
| (0;s0;m0;0 0 0 1) ;:test1
So we start with setting current word hence j=0 and we want final column
d=0 to emit word.
Do you see the shortcoming in the above snippet?
thanks!
cheers,
Pawel
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm