// file: $isip/class/pr/ProductionRuleTokenType/prtt_01.cc
// version: $Id: prtt_01.cc 10419 2006-02-03 21:51:48Z slee $

// ISIP include files
//
#include "ProductionRuleTokenType.h"

// method: debug
//
// arguments:
//   const unichar* msg: (input) a message to display with the
//     member data information
//
// return: a boolean indicating status
//
boolean ProductionRuleTokenType::debug(const unichar* msg_a) const {

  // exit gracefully
  //
  return true;
}

// method: clear
//
// arguments:
//  Integral::CMODE ctype: (input) clear mode
//
// return: a boolean value indicating status
//
// this method resets the data members to the default values
//
boolean ProductionRuleTokenType::clear(Integral::CMODE ctype_a) {
  
  type_d=ProductionRuleTokenType::NONE;
  
  // indicate success
  //
  return true;
}

// method: operator=
//
// arguments:
//  const ProductionRuleTokenType& arg: (input) input object to copy
//
// return: a boolean value indicating status
//
// this method copies the argument over this object
//
boolean ProductionRuleTokenType::operator=(const ProductionRuleTokenType& prtt_a) {
  return assign(prtt_a);
}

// method: assign
//
// arguments:
//  const ProductionRuleTokenType& arg: (input) object to copy
//
// return: a boolean value indicating status
//
// this method assigns the input object to current object
//
boolean ProductionRuleTokenType::assign(const ProductionRuleTokenType& prtt_a) {
  
  type_d=prtt_a.type_d;
  return true;
}

// method: operator==
//
// arguments:
//  const ProductionRuleTokenType& arg: (input) input object to compare
//
// return: a boolean value indicating status
//
// this method checks whether the current object is identical to the
// input object
//
boolean ProductionRuleTokenType::operator==(const ProductionRuleTokenType& prtt_a) const {
  return eq(prtt_a);
}

// method: eq
//
// arguments:
//  const ProductionRuleTokenType& prtt: (input) input object to compare
//
// return: a boolean value indicating equality
//
// this method checks whether the current object is identical to the
// input object
//
boolean ProductionRuleTokenType::eq(const ProductionRuleTokenType& prtt_a) const {
  
  // compare all non/debug member data
  //
  return(prtt_a.type_d==type_d);  
}

// method: sofSize
//
// arguments:
//  none
//
// return: a long size
//
// this method gives an sof size
//
long ProductionRuleTokenType::sofSize() const {

  return TYPE_MAP.elementSofSize();
  
}
