Exemplo n.º 1
0
void ClientXMLDocument::phraseToXML(const Phrase & phrase)
{
	int pint(0);
	  string pmode("");
	  if (cl("-inv").optionflag) {
		outs << "  <SENTENCE Type=\"" << phrase.back().second << "\" Inv=\"" << cl("-inv").optionarg << "\">" << endl;
	  }
	  else {
		outs << "  <SENTENCE Type=\"" << phrase.back().second << "\">" << endl;
	  }
	  for(unsigned i=0; i<phrase.size()-1; i++) {
	    if(phrase[i+1].first == TOKEN_PHRASE_DELIMITER) {
	      pint = 2;
	      switch (phrase[i+1].second[0]) {
	      case ':' : pmode="."; break;
	      default : pmode="?"; break;
	      }
	    }
	    if(phrase[i+1].first == TOKEN_SENTENCE_DELIMITER) {
	      pint = 5;
	      switch (phrase[i+1].second[0]) {
	      case '?' : pmode="?"; break;
	      default : pmode="."; break;
	      }
	    }
	    outs << "   <WORD Orth=\"" << phrase[i].second << "\" PInt=\"" <<pint
		<< "\" PMode=\"" << pmode << "\"></WORD>" << endl;
	    if(pint) {
	      pint = 0;
	      pmode="";
	      i++;
	    }
	  }
	  outs << "  </SENTENCE>" << endl;

}