WITH ada.text_io; WITH ada.integer_text_io; PACKAGE BODY stack2 IS --TYPE aStack IS ARRAY (1..20) OF integer; PROCEDURE push (someStack :IN OUT aStack; someValue : IN integer) IS full : boolean; BEGIN -- if the stack isn't full, we can push something on to it -- ask whether it's full full := isFull (someStack); IF NOT(full)THEN -- put the value on the stack someStack.top := someStack.top + 1; someStack.anArray(someStack.top) := someValue; END IF; NULL; END push; PROCEDURE pop (someStack : IN OUT aStack; someValue : OUT integer) IS BEGIN someValue := 53; NULL; END pop; FUNCTION isFull (someStack : IN aStack) RETURN boolean is result : boolean; BEGIN result := false; IF (someStack.top = 20) THEN result := true; END IF; RETURN result; END isFull; FUNCTION isEmpty (someStack : IN aStack) RETURN boolean is result : boolean; BEGIN result := FALSE; IF someStack.top = 0 THEN result := true; END IF; RETURN result; END isEmpty; PROCEDURE peek (someStack : IN aStack; someValue : OUT integer) is BEGIN NULL; someValue := -68; END peek; PROCEDURE makeEmpty (someStack : IN OUT aStack)is BEGIN NULL; someStack.top := 0; END makeEmpty; END stack2;