func Init() if(linked(Result) and linked(doCalc)) if(isdef(MathType)) lang(res:real) lng.decl_class_var(res, 'real') else lang(res:int) lng.decl_class_var(res, 'integer') end end end func doCalc fvar(i,s) s = code("(" + MathStr + ")") for(i = 1; i <= _data_count_; i++) replace(s, '%' + i, lcode(point("X" + i))) end if(linked(Result)) println(res, ' = ', s, ';') s = res end if(isdef(MathType)) event(onResult, s@real) else event(onResult, s@int) end end func doClear println(res, ' = ', Default, ';') end func Result if(linked(doCalc) or linked(doClear)) return(res) else fvar(i,s) s = code("(" + MathStr + ")") for(i = 1; i <= _data_count_; i++) replace(s, '%' + i, lcode(point("X" + i))) end if(isdef(MathType)) return(s@real) else return(s@int) end end end // todo: // сделать нормальный парсинг строки через оператор &