#include "scanner.h"
#include <string.h>

void push(t_node liste,t_node ele)
{
  add(liste,ele);
}

t_node new_stack(int length)
{
  t_node res = new_vector_node(length);
  clear_stack(res);

  return res;  
}

int stack_elements(t_node node)
{
  return NODE_FILL(node);
}

t_node stack_element_n(t_node node, int i)
{
  return NODE_ENTRY(node,NODE_FILL(node)-i-1);
}

t_node pop(t_node liste)
{
  NODE_FILL(liste) -= 1;
  return NODE_ENTRY(liste,NODE_FILL(liste));
}

void pop_n(t_node liste, int n)
{
  NODE_FILL(liste) -= n;
}

void clear_stack(t_node node)
{
  NODE_FILL(node) = 0;
}

t_node top(t_node liste)
{
  return NODE_ENTRY(liste,NODE_FILL(liste)-1);
}

void push_liste(t_node stack, t_node liste)
{
  int i;
  for (i=0; i<NODE_FILL(liste); ++i)
    push(stack,NODE_ENTRY(liste,i));
}

void reverse_push_liste(t_node stack, t_node liste)
{
  int i;
  for (i=NODE_FILL(liste)-1; i>=0 ; --i)
    push(stack,NODE_ENTRY(liste,i));
}



/*eof*/
