Example #1
0
        private string traverse(int num, Set set, float num2)
        {
            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < num; i++)
            {
                stringBuilder.append("    ");
            }
            stringBuilder.append("N(").append(this.getID()).append("):");
            stringBuilder.append("p:").append(num2);
            if (this.isFinalNode())
            {
                stringBuilder.append(" !");
            }
            Word[][] array = this.getAlternatives();
            for (int j = 0; j < array.Length; j++)
            {
                for (int k = 0; k < array[j].Length; k++)
                {
                    stringBuilder.append(' ').append(array[j][k].getSpelling());
                }
                if (j < array.Length - 1)
                {
                    stringBuilder.append('|');
                }
            }
            [email protected](stringBuilder);
            if (!this.isFinalNode() && !set.contains(this))
            {
                set.add(this);
                GrammarArc[] successors = this.getSuccessors();
                GrammarArc[] array2     = successors;
                int          num3       = array2.Length;
                for (int l = 0; l < num3; l++)
                {
                    GrammarArc  grammarArc  = array2[l];
                    GrammarNode grammarNode = grammarArc.getGrammarNode();
                    grammarNode.traverse(num + 1, set, grammarArc.getProbability());
                }
            }
            else if (this.isFinalNode())
            {
                set.add(this);
            }
            return(stringBuilder.toString());
        }