Exemple #1
0
        private void ParseTextIntoSentences(string sText)
        {
            int iIndex = 0;
            int iBegin = 0;

            while (iBegin >= 0)
            {
                XmlNode sentenceNode = GetNextSentence(sText, ref iBegin);
                if (sentenceNode != null)
                {
                    PcPatrSentence sentence = new PcPatrSentence(sentenceNode);
                    m_aSentences.SetValue(sentence, iIndex++);
                }
            }
        }
Exemple #2
0
 private void CheckLoadAnaFile(string sFile, int iExpectedCount, int iExpectedCountOfParsesInFirstSentence, out PcPatrDocument doc, out PcPatrSentence sentence, out string sGrammarFile)
 {
     doc = new PcPatrDocument(sFile, out sGrammarFile);
     Assert.IsNotNull(doc.Sentences, "no sentences found in " + sFile);
     Assert.AreEqual(iExpectedCount, doc.Sentences.Length, sFile + " has " + iExpectedCount.ToString() + " Sentences");
     sentence = doc.FirstSentence;
     Assert.IsNotNull(sentence, "could not get first sentence in " + sFile);
     Assert.IsNotNull(sentence.Parses, "no parses found in 1st sentence of " + sFile);
     Assert.AreEqual(iExpectedCountOfParsesInFirstSentence, sentence.Parses.Length, sFile + " has " + iExpectedCountOfParsesInFirstSentence.ToString() + " parses in first sentence");
 }
 private void CheckLoadAnaFile(string sFile, int iExpectedCount, int iExpectedCountOfParsesInFirstSentence, out PcPatrDocument doc, out PcPatrSentence sentence, out string sGrammarFile)
 {
     doc = new PcPatrDocument(sFile, out sGrammarFile);
     Assert.IsNotNull(doc.Sentences, "no sentences found in " + sFile);
     Assert.AreEqual(iExpectedCount, doc.Sentences.Length, sFile + " has " + iExpectedCount.ToString() + " Sentences");
     sentence = doc.FirstSentence;
     Assert.IsNotNull(sentence, "could not get first sentence in " + sFile);
     Assert.IsNotNull(sentence.Parses, "no parses found in 1st sentence of " + sFile);
     Assert.AreEqual(iExpectedCountOfParsesInFirstSentence, sentence.Parses.Length, sFile + " has " + iExpectedCountOfParsesInFirstSentence.ToString() + " parses in first sentence");
 }
 private void UpdateStatusBar(PcPatrSentence sentence)
 {
     if (m_doc != null)
     {
         sbpnlSentence.Text = "Sentence " + m_doc.CurrentSentenceNumber.ToString() + " of " + m_doc.NumberOfSentences.ToString();
         if (sentence != null)
         {
             if (sentence.CurrentParse == null)
                 sbpnlParse.Text = m_ksNoParses;
             else
                 sbpnlParse.Text = "Parse " + sentence.CurrentParseNumber.ToString() + " of " + sentence.NumberOfParses.ToString();
         }
     }
 }
        private void ShowTree(XmlDocument treeDoc, XmlNode xmlTree, PcPatrSentence sentence)
        {
            m_tree.Visible = true;
            m_tree.Enabled = true;
            m_tree.UseRightToLeft = miViewRightToLeft.Checked;
            m_tree.SetTreeParameters(treeDoc);
            m_tree.ParseXmlTreeDescription(xmlTree);
            m_tree.MessageText = "Parse " + sentence.CurrentParseNumber.ToString() + " of " + sentence.NumberOfParses.ToString();
            Graphics grfx = CreateGraphics();
            m_tree.CalculateCoordinates(grfx);
            m_tree.Draw(grfx, Color.Black);

            m_tree.Invalidate();
            pnlTree.Invalidate();
        }
        private void ShowParseTree(PcPatrSentence sentence, PcPatrParse parse)
        {
            m_parse = parse;
            if (sentence.Parses.Length > 0 && parse != null)
            {
                XmlNode node = parse.Node;

                if (node != null)
                {
                    XmlDocument treeDoc = MakeTreeDocFromNode(node);
                    XmlNode xmlTree = treeDoc.SelectSingleNode("//TreeDescription/node");
                    ShowTree(treeDoc, xmlTree, sentence);
                }
            }
            else
            {
                m_tree.Root = null;
                m_tree.Invalidate();
            }
            EnableDisableItems();
            UpdateStatusBar(sentence);
            wbFeatureStructure.Navigate(m_sInitFeatureMessagePath);
        }
        private void ShowInterlinear(PcPatrSentence sentence)
        {
            if (sentence == null)
            {
                ReportNoInterlinear();
                return;
            }
            XmlNode node = sentence.Node;
            XmlNode interlinear = node.SelectSingleNode("//Input");
            if (interlinear == null)
            {
                ReportNoInterlinear();
                return;
            }

            XmlDocument doc1 = new XmlDocument();
            doc1.LoadXml(interlinear.OuterXml);
            XmlNode format = doc1.SelectSingleNode("//Format");
            if (format != null)
            {
                string sBefore = format.InnerText;
                if (sBefore != null)
                {
                    string sAfter = sBefore.Replace("\\n", "\n");
                    format.InnerText = sAfter;
                }
            }
            XPathNavigator nav = doc1.CreateNavigator();

            XmlTextWriter writer = new XmlTextWriter(m_sInterFile, null);
            XsltArgumentList argList = new XsltArgumentList();
            argList.AddParam("sTextMessage", "", "Sentence " + m_doc.CurrentSentenceNumber.ToString() + " of " + m_doc.NumberOfSentences.ToString());
            argList.AddParam("bRightToLeft", "", miViewRightToLeft.Checked ? "Y" : "N");
            argList.AddParam("sDecompSeparationCharacter", "", m_language.DecompChar);
            argList.AddParam("sCategoryFont", "", m_language.NTFontFace);
            argList.AddParam("sDecompFont", "", m_language.LexFontFace);
            argList.AddParam("sFeatDescFont", "", m_language.NTFontFace);
            argList.AddParam("sFormatFont", "", m_language.NTFontFace);
            argList.AddParam("sGlossFont", "", m_language.GlossFontFace);
            argList.AddParam("sOrigWordFont", "", m_language.LexFontFace);
            argList.AddParam("sUnderFormFont", "", m_language.LexFontFace);
            m_interlinearTransform.Transform(nav, argList, writer, null);
            writer.Close();

            this.wbInterlinear.Navigate(m_sInterFile);
        }
 private void ParseTextIntoSentences(string sText)
 {
     int iIndex = 0;
     int iBegin = 0;
     while (iBegin >= 0)
     {
         XmlNode sentenceNode = GetNextSentence(sText, ref iBegin);
         if (sentenceNode != null)
         {
             PcPatrSentence sentence = new PcPatrSentence(sentenceNode);
             m_aSentences.SetValue(sentence, iIndex++);
         }
     }
 }