本文整理汇总了C++中SynGram::GetLink方法的典型用法代码示例。如果您正苦于以下问题:C++ SynGram::GetLink方法的具体用法?C++ SynGram::GetLink怎么用?C++ SynGram::GetLink使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SynGram
的用法示例。
在下文中一共展示了SynGram::GetLink方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PrintXML
void Tree_Node::PrintXML(OFormatter &xml, SynGram &gram) const
{
xml.printf("<node>");
xml.printf("<wordform>");
if (!node.IsNull())
node->PrintXML(xml, gram);
xml.printf("</wordform>");
if (!child.Empty())
{
xml.printf("<leaves count=\"%d\">", CastSizeToInt(child.size()));
for (Container::size_type i = 0; i < child.size(); i++)
{
int link_type_id = child[i].GetLink().GetState();
lem::UCString link_name = link_type_id == UNKNOWN ? L"" : gram.GetLink(link_type_id);
xml.printf("<leaf n=\"%d\" arc_type=\"%d\" arc_name=\"%us\">\n", CastSizeToInt(i), link_type_id, link_name.c_str());
child[i].PrintXML(xml, gram);
xml.printf("</leaf>\n");
}
xml.printf("</leaves>");
}
if (!dims.empty())
{
xml.printf("<dims count=\"%d\">", CastSizeToInt(dims.size()));
for (lem::Container::size_type i = 0; i < dims.size(); ++i)
{
const TreeDimension &d = *dims[i];
xml.printf("<dim n=\"%d\" name=\"%us\">\n", CastSizeToInt(i), d.GetName().c_str());
d.PrintXML(xml, gram.GetDict());
xml.printf("</dim>\n");
}
xml.printf("</dims>");
}
if (!marks.empty())
{
xml.printf("<marks count=\"%d\">", CastSizeToInt(marks.size()));
for (lem::Container::size_type i = 0; i < marks.size(); ++i)
{
xml.printf("<mark n=\"%d\">\n", CastSizeToInt(i));
marks[i]->PrintXML(xml, gram.GetDict());
xml.printf("</mark>\n");
}
xml.printf("</marks>");
}
xml.printf("</node>");
return;
}