func init s = replace(this.props('Code').value, "\\\"", "\"") //s = regex_replace(s, '\\\\r\\\\n', '\\r') s = unescape(s) this.setfield("subname", 'doWork_' + this.id) this.setfield('varname', varname) this.setfield('type', type) if(len(s)) this.block = block.reggen() //this.block this.types = new array() s = regex_replace(s, 'doWork', this.subname, sys.regex_flags('format_first_only')) for(k = 0; k < this.numdatas; k++) pname = this.pt_data(k).name expr = 'sys.' + code(pname) + '(<|)(\\w+|)(>|)' arr = regex_search(s, expr) if(arr.size()) for(m = 0; m < arr.size(); m+=4) s = regex_replace(s, expr, sys.to_type(d(pname), sys.type_code(arr.get(m+2)))) end end end for(k = 0; k < this.numevents; k++) pname = this.pt_event(k).name expr = 'sys.' + code(pname) + '(<\\w+>|)(\\(.*?\\)|)(\\s+|)(;|$)' arr = regex_search(s, expr) if(arr.size()) for(m = 0; m < arr.size(); m+=5) // stores original blocks sys.stack_push(blk) sys.stack_push(blk_lvars) // create event code blk_lvars = block.reggen() blk = block.reggen() this.type = regex_replace(arr.get(m+1), '[<>]', "") event(pname, sub(code(arr.get(m+2)), sys.type_code(this.type))) if(not blk_lvars.empty()) this.block.copyhere(blk_lvars) end s = regex_replace(s, expr, blk.astext(), sys.regex_flags('format_first_only')) // restores original blocks block.delete(blk) block.delete(blk_lvars) blk_lvars = sys.stack_pop() blk = sys.stack_pop() end end end for(k = 0; k < this.numvars; k++) pname = this.pt_var(k).name expr = '(.*?)\\s+' + code(pname) + '\\(\\)' arr = regex_search(s, expr) if(arr.size()) for(m = 0; m < arr.size(); m+=2) this.varname = strcat(pname, strcat(this.id, "()")) this.type = arr.get(m+1) this.types.add(this.type) s = regex_replace(s, code(pname) + '\\(\\)', this.varname) end end method(pname) this.varname = cgt.get_func_name() this.type = this.types.get(sys.get_point_index(3, this.varname)) return(sub(code(strcat(this.varname, this.id)) + '()', sys.type_code(this.type))) end end this.block.println(code(s)) blk_proc_imp.copyhere(this.block) block.delete(this.block) end end func WorkPoints(data, index) if(len(index)) if(len(data)) blk.println(this.subname, '(', (len(data) ? data : ""), ', ', index, ');') else blk.println(this.subname, '(', index, ', 0);') end else blk.println(this.subname, '(', data, ', 0);') end end