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); }
private Set getStartingContexts() { if (this.startingContexts == null) { this.startingContexts = new HashSet(); if (this.node.isEmpty()) { GrammarArc[] successors = this.getSuccessors(); GrammarArc[] array = successors; int num = array.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = array[i]; FlatLinguist.GState gstate = this.this_0.getGState(grammarArc.getGrammarNode()); this.startingContexts.addAll(gstate.getStartingContexts()); } } else { Word word = this.node.getWord(); Pronunciation[] pronunciations = word.getPronunciations(); Pronunciation[] array2 = pronunciations; int i = array2.Length; for (int j = 0; j < i; j++) { Pronunciation pronunciation = array2[j]; UnitContext startingContext = this.getStartingContext(pronunciation); this.startingContexts.add(startingContext); } } } return(this.startingContexts); }
public virtual void connect() { GrammarArc[] successors = this.getSuccessors(); int num = successors.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = successors[i]; FlatLinguist.GState gstate = this.this_0.getGState(grammarArc.getGrammarNode()); if (gstate.getNode().isEmpty() || !String.instancehelper_equals(gstate.getNode().getWord().getSpelling(), "<s>")) { float num2 = grammarArc.getProbability(); if (FlatLinguist.access_800(this.this_0) && !gstate.getNode().isEmpty()) { int num3 = gstate.getNode().getWord().getPronunciations().Length; num2 -= this.this_0.logMath.linearToLog((double)num3); } float num4 = num2; Iterator iterator = this.exitPoints.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry)iterator.next(); List list = gstate.getEntryPoints((ContextPair)entry.getKey()); if (list != null) { List list2 = (List)entry.getValue(); this.connect(list2, list, num4); } } } } }
internal SearchStateArc[] getNextGrammarStates(int num, int num2) { GrammarArc[] array = this.node.getSuccessors(); array = this.filter(array, num2); SearchStateArc[] array2 = new SearchStateArc[array.Length]; for (int i = 0; i < array.Length; i++) { GrammarArc grammarArc = array[i]; array2[i] = new DynamicFlatLinguist.GrammarState(this.this_0, grammarArc.getGrammarNode(), grammarArc.getProbability(), num, num2); } return(array2); }
private void dumpNextNodes() { [email protected](" Next Grammar Nodes: "); GrammarArc[] successors = this.node.getSuccessors(); int num = successors.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = successors[i]; [email protected](new StringBuilder().append(" ").append(grammarArc.getGrammarNode()).toString()); } }
private void pullRightContexts() { GrammarArc[] successors = this.getSuccessors(); GrammarArc[] array = successors; int num = array.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = array[i]; FlatLinguist.GState gstate = this.this_0.getGState(grammarArc.getGrammarNode()); this.rightContexts.addAll(gstate.getStartingContexts()); } }
internal GrammarArc[] filter(GrammarArc[] array, int num) { if (num != 0) { ArrayList arrayList = new ArrayList(); GrammarArc[] array2 = array; int num2 = array2.Length; for (int i = 0; i < num2; i++) { GrammarArc grammarArc = array2[i]; GrammarNode grammarNode = grammarArc.getGrammarNode(); if (this.hasEntryContext(grammarNode, num)) { arrayList.add(grammarArc); } } array = (GrammarArc[])arrayList.toArray(new GrammarArc[arrayList.size()]); } return(array); }
internal virtual void pushLeftContexts(Set set, Collection collection) { if (set.contains(this.getNode())) { return; } set.add(this.getNode()); GrammarArc[] successors = this.getSuccessors(); int num = successors.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = successors[i]; FlatLinguist.GState gstate = this.this_0.getGState(grammarArc.getGrammarNode()); gstate.addLeftContext(collection); if (gstate.getNode().isEmpty()) { gstate.pushLeftContexts(set, collection); } } }
private void initUnitMaps(GrammarNode grammarNode) { if (this.nodeToNextUnitArrayMap.get(grammarNode) == null) { HashSet hashSet = new HashSet(); HashSet hashSet2 = new HashSet(); GrammarArc[] successors = grammarNode.getSuccessors(); GrammarArc[] array = successors; int num = array.Length; for (int i = 0; i < num; i++) { GrammarArc grammarArc = array[i]; GrammarNode grammarNode2 = grammarArc.getGrammarNode(); this.collectNextUnits(grammarNode2, hashSet, hashSet2); } int[] array2 = new int[hashSet2.size()]; num = 0; Iterator iterator = hashSet2.iterator(); while (iterator.hasNext()) { Unit unit = (Unit)iterator.next(); int[] array3 = array2; int num2 = num; num++; array3[num2] = unit.getBaseID(); } this.nodeToNextUnitArrayMap.put(grammarNode, array2); } if (this.nodeToUnitSetMap.get(grammarNode) == null) { HashSet hashSet = new HashSet(); HashSet hashSet2 = new HashSet(); this.collectNextUnits(grammarNode, hashSet, hashSet2); this.nodeToUnitSetMap.put(grammarNode, hashSet2); } }
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); } } }