-- simple string stacks for colloquy stringStack = { new = function() return { add = stringStack.add, create = stringStack.create, stack = {}, } end, add = function(self, string) local i; tinsert(self.stack, string); for i = self.stack.n - 1, 1, -1 do if (strlen(self.stack[i]) > strlen(self.stack[i + 1])) then break end; self.stack[i] = self.stack[i] .. tremove(self.stack); end; end, create = function(self) local i; for i = self.stack.n - 1, 1, -1 do self.stack[i] = self.stack[i] .. tremove(self.stack); end; return self.stack[1]; end, };