/*
Исходный код среды исполнения ПВТ-ОО.
Этот исходный код является частью проекта ПВТ-ОО.
Copyright © 2021 Малик Разработчик
Это свободная программа: вы можете перераспространять её и/или
изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она может быть полезна,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<http://www.gnu.org/licenses/>.
*/
package avt.util;
public service Stack(Vector)
{
public Stack clone() {
int length = fldLength;
Stack result = new Stack(length);
Array.copy(fldElements, 0, result.fldElements, 0, length);
return result;
}
public void push(boolean element) { append(element); }
public void push(char element) { append(element); }
public void push(byte element) { append(element); }
public void push(byte2 element) { append(element); }
public void push(byte4 element) { append(element); }
public void push(byte8 element) { append(element); }
public void push(short element) { append(element); }
public void push(short2 element) { append(element); }
public void push(short4 element) { append(element); }
public void push(short8 element) { append(element); }
public void push(int element) { append(element); }
public void push(int2 element) { append(element); }
public void push(int4 element) { append(element); }
public void push(int8 element) { append(element); }
public void push(long element) { append(element); }
public void push(long2 element) { append(element); }
public void push(long4 element) { append(element); }
public void push(long8 element) { append(element); }
public void push(float element) { append(element); }
public void push(float2 element) { append(element); }
public void push(float4 element) { append(element); }
public void push(float8 element) { append(element); }
public void push(double element) { append(element); }
public void push(double2 element) { append(element); }
public void push(double4 element) { append(element); }
public void push(double8 element) { append(element); }
public void push(real element) { append(element); }
public void push(Object element) { append(element); }
public Object pop() {
int index = fldLength - 1;
if(index < 0)
{
throw new EmptyStackException("стак пуст");
}
Object[] elements = fldElements;
Object result = elements[index];
elements[fldLength = index] = null;
return result;
}
public Object peek() { return lastElement(); }
}