Part 1, a chance to exercise the FSM. The states here are sufficient for character count. Raul's annotated state table style is worth reiterating, hence this post. Fixed width font aligns the columns.

mp=: +/ .*

S=: +. ". }. [;._2 noun define
bore hex  \    "    x    LF
0j6  0j6  0j6  6j0  0j6  0j0  NB. 0 between strings j=_1
2j1  2j1  3j0  1j3  2j1  0j0  NB. 1 terminating "
2j0  2j0  3j3  1j3  2j0  0j6  NB. 2 amid string
0j6  0j6  2j1  2j1  4j0  0j6  NB. 3 allow \"x after leading \
0j6  5j0  2j1  2j1  5j0  0j6  NB. 4 first hex digit
0j6  2j1  0j6  0j6  0j6  0j6  NB. 5 second hex digit
2j1  2j1  3j0  1j0  2j1  0j6  NB. 6 first char of string
)

M=: a.(>:@i.@#@] mp (e.>)"1 0)'0123456789abcdef';;/'\"x',LF

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to