示例#1
0
        private static List getNextGrammarNodesWithWords(GrammarNode grammarNode)
        {
            ArrayList arrayList = new ArrayList();

            GrammarArc[] successors = grammarNode.getSuccessors();
            int          num        = successors.Length;

            for (int i = 0; i < num; i++)
            {
                GrammarArc  grammarArc   = successors[i];
                GrammarNode grammarNode2 = grammarArc.getGrammarNode();
                if (grammarNode2.getAlternatives().Length == 0)
                {
                    if (grammarNode2.isFinalNode())
                    {
                        arrayList.add(grammarNode2);
                    }
                    else
                    {
                        arrayList.addAll(GrammarPoint.getNextGrammarNodesWithWords(grammarNode2));
                    }
                }
                else
                {
                    arrayList.add(grammarNode2);
                }
            }
            return(arrayList);
        }
示例#2
0
 private void collectNextUnits(GrammarNode grammarNode, Set set, Set set2)
 {
     if (set.contains(grammarNode))
     {
         return;
     }
     set.add(grammarNode);
     if (grammarNode.isFinalNode())
     {
         set2.add(UnitManager.__SILENCE);
     }
     else if (!grammarNode.isEmpty())
     {
         Word            word           = grammarNode.getWord();
         Pronunciation[] pronunciations = word.getPronunciations();
         Pronunciation[] array          = pronunciations;
         int             i = array.Length;
         for (int j = 0; j < i; j++)
         {
             Pronunciation pronunciation = array[j];
             set2.add(pronunciation.getUnits()[0]);
         }
     }
     else
     {
         GrammarArc[] successors = grammarNode.getSuccessors();
         GrammarArc[] array2     = successors;
         int          num        = array2.Length;
         for (int i = 0; i < num; i++)
         {
             GrammarArc  grammarArc   = array2[i];
             GrammarNode grammarNode2 = grammarArc.getGrammarNode();
             this.collectNextUnits(grammarNode2, set, set2);
         }
     }
 }