public import "ecere" import "ArrayFactoredGrowth" private: public class Stack : Array { } public class IntStack : Stack { type = class(int); public: int * const _; void Push(int item) { uint pos = _count; Append(1); _[pos] = item; } int Pop() { int item = _[_count - 1]; Trim(1); return item; } } class UintStack : Stack { type = class(uint); public: uint * const _; void Push(uint item) { uint pos = _count; Append(1); _[pos] = item; } uint Pop() { uint item = _[_count - 1]; Trim(1); return item; } } class StringStack : Stack { type = class(String); public: String * const _; void Push(String item) { uint pos = _count; Append(1); _[pos] = item; } String Pop() { String item = _[_count - 1]; Trim(1); return item; } }