func Init() if(linked(Left)) lng.decl_priv_var(split_left, 'QString') end if(linked(Right)) lng.decl_priv_var(split_right, 'QString') end end func doSplit lng.decl_loc_var(p, 'int') lng.decl_loc_var(s, 'QString') println(s, ' = ', `Str`, ';') println(p + ' = ' + s + '.indexOf(', Char, ', 0);') println('if(' + p + ' != -1) {') block.inclvl() fvar(sl, sr) sl = s + '.mid(0, ' + p + ')' sr = s + '.mid(' + p + ' + 1, -1)' if(linked(Left)) println(split_left + ' = ' + sl + ';') sl = split_left end if(linked(Left)) println(split_right + ' = ' + sr + ';') sr = split_right end if(isdef(DirectEvent)) event(onPart, sl) event(onSplit, sr) else event(onSplit, sr) event(onPart, sl) end block.declvl() println('}') end func Left return(split_left) end func Right return(split_right) end