public string GetContextPoint(SolarixGrammarEngineNET.GrammarEngine2 gren)
{
System.Text.StringBuilder b = new StringBuilder();
if (!string.IsNullOrEmpty(lexem))
{
b.AppendFormat("\"{0}\"", lexem);
}
else
{
if (id_class != -1)
{
b.AppendFormat("{0}:*", gren.GetClassName(id_class));
}
else
{
int pos = gren.GetEntryClass(id_entry);
b.AppendFormat("{0}:{1}", gren.GetClassName(pos), gren.GetEntryName(id_entry));
}
b.Append("{");
// выводим список координатных пар
foreach (SolarixGrammarEngineNET.CoordPair p in pairs)
{
string CoordName = gren.GetCoordName(p.CoordID);
if (gren.CountCoordStates(p.CoordID) == 0)
{
if (p.StateID == 1)
{
b.AppendFormat(" {0}", CoordName);
}
else
{
b.AppendFormat(" ~{0}", CoordName);
}
}
else
{
string StateName = gren.GetCoordStateName(p.CoordID, p.StateID);
b.AppendFormat(" {0}:{1}", CoordName, StateName);
}
}
b.Append(" }");
}
return(b.ToString());
}