property _genv property _genf -- @constructor on new (me, genv, genf) me._genv = genv me._genf = genf return me end on exec (me, input) repeat while TRUE me._genv.exec(input) v = input[1] ok = TRUE me._genf.reset() -- reset filter generator repeat while TRUE me._genf.exec(input) f = input[1] if f>v then exit repeat if f=v then ok=FALSE exit repeat end if end repeat if ok then input[1] = v exit repeat end if end repeat return TRUE end on skip (me, steps) repeat with i = 1 to steps me.exec([]) end repeat end on reset (me) me._genv.reset() me._genf.reset() end