	xdefs[0] = 42
	xdefs[1] = 43
	xdefs[2] = 47
	xdefs[3] = 38
	xdefs[4] = 94
	[     ID] C
	[   INCR] ++
	[       ] * prec=27 node_id=1
	[     ID] hello
	[       ] / prec=25 node_id=3
	[       ] & prec=24 node_id=4
	[     ID] world
	[       ] ^ prec=23 node_id=5
 ----------- ----------- ----------- ----------- ----------- 
	[     ID]  class
	[     ID]  TmplStack
	[       ]  {
	[     ID]  TVAR
	[ NUMBER]  1
	[       ]  *
	[     ID]  stkarray
	[       ]  ;
	[     ID]  int
	[     ID]  stksiz
	[       ]  ,
	[     ID]  top
	[       ]  ;
	[     ID]  public
	[       ]  :
	[     ID]  TmplStack
	[       ]  (
	[     ID]  int
	[     ID]  stacksize
	[       ]  )
	[       ]  {
	[     ID]  if
	[       ]  (
	[     ID]  stacksize
	[       ]  <
	[       ]  =
	[ NUMBER]  0
	[       ]  )
	[     ID]  stacksize
	[       ]  =
	[ NUMBER]  1
	[       ]  ;
	[     ID]  stkarray
	[       ]  =
	[     ID]  new
	[     ID]  TVAR
	[ NUMBER]  1
	[       ]  [
	[     ID]  stacksize
	[       ]  ]
	[       ]  ;
	[     ID]  stksiz
	[       ]  =
	[     ID]  stacksize
	[       ]  ;
	[     ID]  top
	[       ]  =
	[ NUMBER]  0
	[       ]  ;
	[       ]  }
	[       ]  ~
	[     ID]  TmplStack
	[       ]  (
	[       ]  )
	[       ]  {
	[     ID]  delete
	[       ]  [
	[       ]  ]
	[     ID]  stkarray
	[       ]  ;
	[       ]  }
	[     ID]  bool
	[     ID]  isEmpty
	[       ]  (
	[       ]  )
	[       ]  {
	[     ID]  return
	[     ID]  top
	[       ]  =
	[       ]  =
	[ NUMBER]  0
	[       ]  ?
	[     ID]  true
	[       ]  :
	[     ID]  false
	[       ]  ;
	[       ]  }
	[     ID]  bool
	[     ID]  isFull
	[       ]  (
	[       ]  )
	[       ]  {
	[     ID]  return
	[     ID]  top
	[       ]  =
	[       ]  =
	[     ID]  stksiz
	[       ]  ?
	[     ID]  true
	[       ]  :
	[     ID]  false
	[       ]  ;
	[       ]  }
	[     ID]  void
	[     ID]  push
	[       ]  (
	[     ID]  const
	[     ID]  TVAR
	[ NUMBER]  1
	[       ]  &
	[     ID]  elmt
	[       ]  )
	[       ]  {
	[     ID]  if
	[       ]  (
	[     ID]  isFull
	[       ]  (
	[       ]  )
	[       ]  )
	[       ]  {
	[     ID]  return
	[       ]  ;
	[       ]  }
	[     ID]  stkarray
	[       ]  [
	[     ID]  top
	[       ]  +
	[       ]  +
	[       ]  ]
	[       ]  =
	[     ID]  elmt
	[       ]  ;
	[       ]  }
	[     ID]  TVAR
	[ NUMBER]  1
	[     ID]  pop
	[       ]  (
	[       ]  )
	[       ]  {
	[     ID]  if
	[       ]  (
	[     ID]  isEmpty
	[       ]  (
	[       ]  )
	[       ]  )
	[       ]  {
	[     ID]  return
	[       ]  ;
	[       ]  }
	[     ID]  else
	[       ]  {
	[       ]  -
	[       ]  -
	[     ID]  top
	[       ]  ;
	[       ]  }
	[     ID]  return
	[     ID]  stkarray
	[       ]  [
	[     ID]  top
	[       ]  ]
	[       ]  ;
	[       ]  }
	[       ]  }
	[       ]  ;
 ----------- ----------- ----------- ----------- ----------- 
	[     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
	[       ] ]
	[       ] ;
	[       ] }
	[       ] }
	[       ] ;
