
int main()
{
  void* pParser = ParseAlloc (malloc);

  struct Token t0,t1;
  struct Token mToken;

  t0.value=4;
  t0.n=0;

  t1.value=13;
  t1.n=0;

  std::cout << " t0.value=4  PLUS t1.value=13 " << std::endl;

  Parse (pParser, NUM, t0);
  Parse (pParser, PLUS, t0);
  Parse (pParser, NUM, t1);
  Parse (pParser, 0, t0);

  std::cout << " t0.value=4  DIVIDE t1.value=13 " << std::endl;

  Parse (pParser, NUM, t0);
  Parse (pParser, DIVIDE, t0);
  Parse (pParser, NUM, t1);
  Parse (pParser, 0, t1);

  std::cout << " t0.value=4  TIMES  t1.value= 13 PLUS t0.value=4 PLUS t1.value=13 " << std::endl;

  Parse (pParser, NUM, t0);
  Parse (pParser, TIMES, t0);
  Parse (pParser, NUM, t1);
  Parse (pParser, PLUS, t0);
  Parse (pParser, NUM, t1);
  Parse (pParser, PLUS, t0);
  Parse (pParser, NUM, t1);
  Parse (pParser, 0, t1);

  std::cout << " t1.value=13  PLUS  t0.value=4  " << std::endl;

  Parse (pParser, NUM, t1);
  Parse (pParser, PLUS, t1);
  Parse (pParser, NUM, t0);
  Parse (pParser, 0, t1);


  ParseFree(pParser, free );

}
