func init // adds using namespace sys.add_use('System.Collections') // initialize instance params = this.props('Constructor').value if(params == 'Constructor') params = '' elseif(params == 'Constructor2') params = '' + d("col") elseif(params == 'Constructor3') params = '' + d("initialCapacity") end sys.add_object(this.codename, 'Stack', params) // makes implementation methods for properties sys._prop_init('Count', 1, 0, 1) sys._prop_init('IsSynchronized', 1, 0, 104) sys._prop_init('SyncRoot', 1, 0, 0) // makes implementation of methods as properties sys._mtd_as_prop_init('Clone()') sys._mtd_as_prop_init('GetEnumerator()') sys._mtd_as_prop_init('Peek()') sys._mtd_as_prop_init('ToArray()') sys._mtd_as_prop_init('Stack') // makes implementation of simple methods sys._method_init('Clear') if(linked("onEmpty")) this.setfield('ex', 'ex' + this.id) end end func doConstructor() blk.println(this.codename, ' = new Stack();') end func doConstructor2(col) blk.println(this.codename, ' = new Stack(', d("col"), ');') end func doConstructor3(initialCapacity) blk.println(this.codename, ' = new Stack(', d("initialCapacity"), ');') end func doContains(obj) if(linked("onContains")) event("onContains", this.codename + '.Contains(' + d("obj") + ')') else blk.println(this.codename, '.Contains(', d("obj"), ');') end end func doCopyTo(array, index) blk.println(this.codename, '.CopyTo(', d("array"), ', ', d("index"), ');') end func doPush(obj) blk.println(this.codename, '.Push(', d("obj"), ');') end func doPop() linked("onEmpty") ? blk.println('try {').inc() : '' event("onPop", this.codename + '.Pop()') if(linked("onEmpty")) blk.dec().println('} catch(InvalidOperationException ', this.ex, ') {').inc() event("onEmpty", this.ex + '.Message') blk.dec().println('}') end end func doSynchronized(stack) if(linked("onSynchronized")) event("onSynchronized", 'Stack.Synchronized(' + d("stack") + ')') else blk.println('Stack.Synchronized(', d("stack"), ');') end end