	[     ID] class
	[     ID] TmplStack
	[       ] {
	[UNSIGNED] unsigned
	[   LONG] long
	[   LONG] long
	[       ] *
	[     ID] stkarray
	[       ] ;
	[    INT] int
	[     ID] stksiz
	[       ] ,
	[     ID] top
	[       ] ;
	[     ID] public
	[       ] :
	[     ID] TmplStack
	[       ] (
	[    INT] int
	[     ID] stacksize
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] stacksize
	[    LEQ] <=
	[ NUMBER] 0
	[       ] )
	[     ID] stacksize
	[       ] =
	[ NUMBER] 1
	[       ] ;
	[     ID] stkarray
	[       ] =
	[     ID] new
	[UNSIGNED] unsigned
	[   LONG] long
	[   LONG] long
	[       ] [
	[     ID] stacksize
	[       ] ]
	[       ] ;
	[     ID] stksiz
	[       ] =
	[     ID] stacksize
	[       ] ;
	[     ID] top
	[       ] =
	[ NUMBER] 0
	[       ] ;
	[       ] }
	[       ] ~
	[     ID] TmplStack
	[       ] (
	[       ] )
	[       ] {
	[     ID] delete
	[       ] [
	[       ] ]
	[     ID] stkarray
	[       ] ;
	[       ] }
	[     ID] bool
	[     ID] isEmpty
	[       ] (
	[       ] )
	[       ] {
	[ RETURN] return
	[     ID] top
	[    EQL] ==
	[ NUMBER] 0
	[       ] ?
	[     ID] true
	[       ] :
	[     ID] false
	[       ] ;
	[       ] }
	[     ID] bool
	[     ID] isFull
	[       ] (
	[       ] )
	[       ] {
	[ RETURN] return
	[     ID] top
	[    EQL] ==
	[     ID] stksiz
	[       ] ?
	[     ID] true
	[       ] :
	[     ID] false
	[       ] ;
	[       ] }
	[TOK_VOID] void
	[     ID] push
	[       ] (
	[TOK_CONST] const
	[UNSIGNED] unsigned
	[   LONG] long
	[   LONG] long
	[       ] &
	[     ID] elmt
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] isFull
	[       ] (
	[       ] )
	[       ] )
	[       ] {
	[ RETURN] return
	[       ] ;
	[       ] }
	[     ID] stkarray
	[       ] [
	[     ID] top
	[   INCR] ++
	[       ] ]
	[       ] =
	[     ID] elmt
	[       ] ;
	[       ] }
	[UNSIGNED] unsigned
	[   LONG] long
	[   LONG] long
	[     ID] pop
	[       ] (
	[       ] )
	[       ] {
	[     IF] if
	[       ] (
	[     ID] isEmpty
	[       ] (
	[       ] )
	[       ] )
	[       ] {
	[ RETURN] return
	[       ] ;
	[       ] }
	[   ELSE] else
	[       ] {
	[   DECR] --
	[     ID] top
	[       ] ;
	[       ] }
	[ RETURN] return
	[     ID] stkarray
	[       ] [
	[     ID] top
	[       ] ]
	[       ] ;
	[       ] }
	[       ] }
	[       ] ;
