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()); }
public int MatchTags(SolarixGrammarEngineNET.SyntaxTreeNode token, SolarixGrammarEngineNET.GrammarEngine2 gren) { foreach (TagMatcher m in matchers) { if (m.Match(token, gren)) { return(m.GetId()); } } int entry_id = token.GetEntryID(); int pos_id = gren.GetEntryClass(entry_id); string part_of_speech = gren.GetClassName(pos_id); string tags = string.Join(" ", token.GetPairs().Select(z => string.Format("{0}={1}", gren.GetCoordName(z.CoordID), gren.GetCoordStateName(z.CoordID, z.StateID))).ToArray()); string msg = string.Format("Can not find tag for {0} {{ {1} {2} }}", token.GetWord(), part_of_speech, tags); throw new ApplicationException(msg); }
public string GetContextPoint(SolarixGrammarEngineNET.GrammarEngine2 gren) { return(string.Format("[\"{0}\"{{class:{1}}}]", word, gren.GetClassName(gren.GetEntryClass(id_entry)))); }