	[     ID] class
	[     ID] TmplStack
	[       ] {
	[    INT] int
	[       ] *
	[     ID] stk_array
	[       ] ;
	[    INT] int
	[     ID] stk_siz
	[       ] ,
	[     ID] top
	[       ] ;
	[     ID] public
	[       ] :
	[     ID] TmplStack
	[       ] (
	[    INT] int
	[     ID] stack_size
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] stack_size
	[    LEQ] <=
	[ NUMBER] 0
	[       ] )
	[     ID] stack_size
	[       ] =
	[ NUMBER] 1
	[       ] ;
	[     ID] stk_array
	[       ] =
	[     ID] new
	[    INT] int
	[       ] [
	[     ID] stack_size
	[       ] ]
	[       ] ;
	[     ID] stk_siz
	[       ] =
	[     ID] stack_size
	[       ] ;
	[     ID] top
	[       ] =
	[ NUMBER] 0
	[       ] ;
	[       ] }
	[       ] ~
	[     ID] TmplStack
	[       ] (
	[       ] )
	[       ] {
	[     ID] delete
	[       ] [
	[       ] ]
	[     ID] stk_array
	[       ] ;
	[       ] }
	[     ID] bool
	[     ID] isEmpty
	[       ] (
	[       ] )
	[       ] {
	[ RETURN] return
	[     ID] top
	[     EQ] ==
	[ NUMBER] 0
	[       ] ?
	[     ID] true
	[       ] :
	[     ID] false
	[       ] ;
	[       ] }
	[     ID] bool
	[     ID] isFull
	[       ] (
	[       ] )
	[       ] {
	[ RETURN] return
	[     ID] top
	[     EQ] ==
	[     ID] stk_siz
	[       ] ?
	[     ID] true
	[       ] :
	[     ID] false
	[       ] ;
	[       ] }
	[   VOID] void
	[     ID] push
	[       ] (
	[  CONST] const
	[    INT] int
	[       ] &
	[     ID] elmt
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] isFull
	[       ] (
	[       ] )
	[       ] )
	[       ] {
	[     ID] cout
	[       ] <
	[       ] <
	[ DQUOTE] stack full: fail to push!\x0a
	[       ] ;
	[ RETURN] return
	[       ] ;
	[       ] }
	[     ID] stk_array
	[       ] [
	[     ID] top
	[       ] +
	[       ] +
	[       ] ]
	[       ] =
	[     ID] elmt
	[       ] ;
	[       ] }
	[    INT] int
	[     ID] pop
	[       ] (
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] isEmpty
	[       ] (
	[       ] )
	[       ] )
	[       ] {
	[     ID] cout
	[       ] <
	[       ] <
	[ DQUOTE] stack empty: fail to pop!\x0a
	[       ] ;
	[       ] }
	[   ELSE] else
	[       ] {
	[       ] -
	[       ] -
	[     ID] top
	[       ] ;
	[       ] }
	[ RETURN] return
	[     ID] stk_array
	[       ] [
	[     ID] top
	[       ] ]
	[       ] ;
	[       ] }
	[       ] }
	[       ] ;
	[    EOI] 
