// file: $isip/class/pr/NGramNode/nnode_01.cc
// version: $Id: nnode_01.cc 8243 2002-06-27 12:43:53Z zheng $
//

// isip include files
//
#include "NGramNode.h"

// method: debug
//
// arguments:
//  const unichar* msg: (input) message to print
//
// return: a boolean value indicating status
//
boolean NGramNode::debug(const unichar* msg_a) const {

  // declare local variables
  //  
  String value;
  String output;
  String empty_str;

  // output the information message
  //
  output.debugStr(name(), msg_a, L":");
  Console::put(output);

  // increase the indentation
  //  
  Console::increaseIndention();

  // display the symbol index number
  //
  value.assign(index_d);
  output.debugStr(name(), empty_str, L"index_d", value);
  Console::put(output);

  // display the language model score
  //
  value.assign(lm_score_d);
  output.debugStr(name(), empty_str, L"lm_score_d", value);
  Console::put(output);
  
  // display the backoff score
  //
  value.assign(backoff_d);
  output.debugStr(name(), empty_str, L"backoff_d", value);
  Console::put(output);
  
  // display the hash table
  //
  output.debugStr(name(), msg_a, L"next_gram_d = ");
  if (next_gram_d != NULL) {
    value.assign((long)next_gram_d);
    output.concat(value);
    Console::put(output);
    //    next_gram_d->debug(L"next gram");
  }
  else {
    output.concat(L"NULL");
    Console::put(output);
  }

  // decrease indention
  //
  Console::decreaseIndention();
  
  // exit gracefully
  //
  return true;
}
