$./mpnext
pattern:
2 step/s
# algorithm
1ComputeMPNext(p) {m = |p|}
2begin
3 jMPnext[1]0
4 for i1 to m do
5 while j > 0 and p[i]p[j] do jMPnext[j]
6 jj + 1
7 MPnext[i + 1]j
8 od
9end
# pattern (1-indexed)
no data
# variables
i
j
m
10
p[i]
p[j]
# MPNext array (1-indexed)
no data
# current action
enter a pattern and click "run" to begin...
# step history
stepip[i]j_startj_endmpnextaction