#include "stack.h"    // get the interface

namespace Stack {     // representation
   const int max_size = 200;
   char v[max_size];         // array holds 200 elements, numbered 0-199
   int top = 0;
   int stack_size = 0;       // added by Boon for implementation details
}

void Stack::push(char c) { 
   /* check for overflow and push c */
   if (stack_size < (max_size - 1)) { 
      stack_size = stack_size + 1;
      for (int i = stack_size; i <= top; i--) {
         v[i] = v[i - 1];
      }
      v[top] = c;
   }
   return; 
}

char Stack::pop() { 
   char popped_char;
   /* check for underflow and pop */ 
   if (stack_size >= 0) {
      popped_char = v[top];
      stack_size = stack_size - 1;
      for (int i = top; i <= stack_size; i++) {
         v[i] = v[i + 1];
      }  
   }
   return popped_char;
}

