func isTplAnd(pid) fvar(id, res) res = 0 id = cgt.pt_get_parent(cgt.pt_get_link_point(pid)) if(cgt.el_get_class_name(id) = "If_else") if(cgt.pt_get_rlink_point(cgt.get_point_id(onFalse)) = cgt.pt_get_rlink_point(cgt.el_get_point_name(id, "onFalse"))) res = 1 end end return(res) end func _type(op) if(typeof(op) = 13 or typeof(op) = 19) return(expof(op)) else return(typeof(op)) end end func doCompare(data) fvar(id, op, od, pid, ok) op = Op1 trace(op) if(isdef(Type) and isnset(Op2) and isdef(Op2)) id = _type(op) if(id = 1 or id = 7) od = op && ' <> 0' elseif(id = 2) od = op && ' <> \'\'' else od = op && ' <> nil' end else od = 'false' switch(lng.get_type(op)) case 1: od = op && ' ' && Type && ' ' && e_int(Op2) case 2: od = op && ' ' && Type && ' ' && e_str(Op2) case 7: od = op && ' ' && Type && ' ' && e_real(Op2) case 102: switch(lng.get_type(Op2)) case 1: od = e_int(op) && ' ' && Type && ' ' && e_int(Op2) case 2: od = e_str(op) && ' ' && Type && ' ' && e_str(Op2) case 7: od = e_real(op) && ' ' && Type && ' ' && e_real(Op2) end end sub(od, lng.get_type(op)) end if(linked(onTrue)) if(isTplAnd(cgt.get_point_id(onTrue))) if(isTplAnd(cgt.pt_arr_work(0))) print('(', od, ') and ') else print('if((', od, ') and ') end event(onTrue, isndef(OutData) ? "" : _data_) ok = 1 end end if(ok != 1) if(isTplAnd(cgt.pt_arr_work(0))) println('(', od, ') )then') lng.begin() ok = 1 end if(ok != 1) println('if ', od, ' then') lng.begin() end od = isndef(OutData) ? "" : _data_ event(onTrue, od) block.declvl() if(linked(onFalse)) println('end') else println('end;') end if(linked(onFalse)) id = cgt.pt_get_parent(cgt.pt_get_link_point(cgt.get_point_id(onFalse))) if(cgt.el_get_class_name(id) = "If_else") print('else ') event(onFalse, od) else println('else') lng.begin() event(onFalse, od) lng.end() end end end end func Result return('(' && Op1 && ' ' && Type && ' ' && Op2 && ')') end