7 instantiations of Arc
System.Speech (7)
Internal\SrgsCompiler\BackEnd.cs (7)
385return new Arc(text, null, _words, 1.0f, CfgGrammar.SP_NORMAL_CONFIDENCE, null, matchMode, ref _fNeedWeightTable); 419Arc arc = new(null, ruleToTransitionTo, _words, flWeight, '\0', specialRuleTrans, MatchMode.AllWords, ref fNeedWeightTable); 506Arc newArc = new(arc, destFromState, destToState); 568Arc newArc = new(arc, destFromState, destToState, newWordId); 908newArc = new Arc(null, ruleToTransitionTo, _words!, flWeight, CfgGrammar.SP_NORMAL_CONFIDENCE, null, MatchMode.AllWords, ref _fNeedWeightTable); 914newArc = new Arc((ulSpecialTransitionIndex != 0) ? 0 : (int)arc.TransitionIndex, flWeight, arc.LowConfRequired ? CfgGrammar.SP_LOW_CONFIDENCE : arc.HighConfRequired ? CfgGrammar.SP_HIGH_CONFIDENCE : CfgGrammar.SP_NORMAL_CONFIDENCE, ulSpecialTransitionIndex, MatchMode.AllWords, ref _fNeedWeightTable); 1265Arc arc = new(s, null, _words, flWeight, requiredConfidence, null, MatchMode.AllWords, ref _fNeedWeightTable);
176 references to Arc
System.Speech (176)
Internal\SrgsCompiler\Arc.cs (30)
17internal class Arc : IComparer<Arc>, IComparable<Arc> 25internal Arc(Arc arc) 43internal Arc(Arc arc, State? start, State? end) 50internal Arc(Arc arc, State? start, State? end, int wordId) 103public int CompareTo(Arc? obj1) 108int IComparer<Arc>.Compare(Arc? obj1, Arc? obj2) 113private int Compare(Arc? obj1, Arc? obj2) 124Arc arc1 = obj1; 125Arc arc2 = obj2; 133internal static int CompareContent(Arc arc1, Arc arc2) 172internal static int CompareContentForKey(Arc arc1, Arc arc2) 224internal static float SerializeExtraEpsilonWithTag(StreamMarshaler streamBuffer, Arc arc, bool isLast, uint arcIndex) 267internal static int CompareForDuplicateInputTransitions(Arc arc1, Arc arc2) 269int iContentCompare = Arc.CompareContent(arc1, arc2); 284internal static int CompareForDuplicateOutputTransitions(Arc arc1, Arc arc2) 287int iContentCompare = Arc.CompareContent(arc1, arc2); 301internal static int CompareIdenticalTransitions(Arc arc1, Arc arc2) 335internal static void CopyTags(Arc src, Arc dest, Direction move) 397internal void CloneTags(Arc arc, List<Tag> _tags, Dictionary<Tag, Tag> endArcs, Backend? be) 437internal bool SameTags(Arc arc)
Internal\SrgsCompiler\ArcList.cs (13)
20internal List<Arc> ToList() 22List<Arc> collection = new(); 23foreach (Arc arc in this) 32return Arc.CompareContentForKey((Arc)arc1, (Arc)arc2); 39internal new Arc First 43return (Arc)base.First; 57foreach (Arc arc in this) 73public Arc[] AKeys 77Arc[] item = new Arc[_item.Count]; 79foreach (Arc arc in _item)
Internal\SrgsCompiler\BackEnd.cs (22)
375internal Arc WordTransition(string sWord, float flWeight, int requiredConfidence) 380internal Arc SubsetTransition(string text, MatchMode matchMode) 398internal Arc RuleTransition(Rule rule, Rule? parentRule, float flWeight) 419Arc arc = new(null, ruleToTransitionTo, _words, flWeight, '\0', specialRuleTrans, MatchMode.AllWords, ref fNeedWeightTable); 439internal Arc EpsilonTransition(float flWeight) 444internal void AddSemanticInterpretationTag(Arc arc, CfgGrammar.CfgProperty propertyInfo) 454internal void AddPropertyTag(Arc start, Arc end, CfgGrammar.CfgProperty propertyInfo) 487foreach (Arc arc in srcFromState.OutArcs) 506Arc newArc = new(arc, destFromState, destToState); 544foreach (Arc arc in srcFromState.OutArcs) 568Arc newArc = new(arc, destFromState, destToState, newWordId); 634Collection<Arc> arcsToDelete = new(); 647foreach (Arc arc in state.OutArcs) 660foreach (Arc arc in arcsToDelete) 828Arc[] apArcTable = new Arc[header.arcs.Length]; 884Arc newArc; 975private Arc CreateTransition(string? sWord, float flWeight, int requiredConfidence) 1204void AddArc(Arc arc) 1262private Arc AddSingleWordTransition(string? s, float flWeight, int requiredConfidence) 1265Arc arc = new(s, null, _words, flWeight, requiredConfidence, null, MatchMode.AllWords, ref _fNeedWeightTable);
Internal\SrgsCompiler\Graph.cs (64)
132foreach (Arc arc in state.OutArcs) 174List<Arc> arcs = srcState.InArcs.ToList(); 175foreach (Arc arc in arcs) 221List<Arc> arcs = srcState.OutArcs.ToList(); 222foreach (Arc arc in arcs) 299Arc epsilonArc = state.InArcs.First; 312foreach (Arc arc in state.OutArcs) 328Arc epsilonArc = state.OutArcs.First; 368List<Arc> tempList = new(); 399List<Arc> tempList = new(); 424List<Arc> tempList = new(); 459List<Arc>? arcsToMerge = null; 462Arc? refArc = null; 466foreach (Arc arc in arcs) 471if (refArc != null && Arc.CompareContent(arc, refArc) == 0) 476arcsToMerge ??= new List<Arc>(); 498arcsToMerge.Sort(Arc.CompareForDuplicateInputTransitions); 501Arc? commonArc = null; // Common property-less transition to merge into 505foreach (Arc arc in arcsToMerge) 507if (refArc == null || Arc.CompareContent(arc, refArc) != 0) 525Arc duplicatedArc = arc; 540foreach (Arc arcOut in commonStartState!.OutArcs) 549foreach (Arc arcOut in duplicatedStartState!.OutArcs) 555Arc.CopyTags(commonArc, duplicatedArc, Direction.Left); 601List<Arc>? arcsToMerge = null; 604Arc? refArc = null; 608foreach (Arc arc in arcs) 613if (refArc != null && Arc.CompareContent(arc, refArc) == 0) 618arcsToMerge ??= new List<Arc>(); 640arcsToMerge.Sort(Arc.CompareForDuplicateOutputTransitions); 643Arc? commonArc = null; // Common property-less transition to merge into 647foreach (Arc arc in arcsToMerge) 649if (refArc == null || Arc.CompareContent(arc, refArc) != 0) 667Arc duplicatedArc = arc; 682foreach (Arc arcOut in commonEndState!.OutArcs) 691foreach (Arc arcOut in duplicatedEndState.OutArcs) 697Arc.CopyTags(commonArc, duplicatedArc, Direction.Right); 734internal static bool MoveSemanticTagLeft(Arc arc) 744Arc previousArc = startState.InArcs.First; 748Arc.CopyTags(arc, previousArc, Direction.Left); 768internal static bool MoveSemanticTagRight(Arc arc) 778Arc pNextArc = endState.OutArcs.First; 782Arc.CopyTags(arc, pNextArc, Direction.Right); 796internal static bool CanTagsBeMoved(Arc start, Arc end) 810private static void DeleteTransition(Arc arc) 827private static void MergeIdenticalTransitions(ArcList arcs, List<Arc> identicalWords) 833List<List<Arc>>? segmentsToDelete = null; 834Arc refArc = arcs.First; 837foreach (Arc arc in arcs) 839if (Arc.CompareContent(refArc, arc) != 0) 844identicalWords.Sort(Arc.CompareIdenticalTransitions); 845segmentsToDelete ??= new List<List<Arc>>(); 850segmentsToDelete.Add(new List<Arc>(identicalWords)); 868foreach (List<Arc> segmentToDelete in segmentsToDelete) 892private static void MergeIdenticalTransitions(List<Arc> identicalWords) 894Collection<Arc>? arcsToDelete = null; 895Arc? refArc = null; 896foreach (Arc arc in identicalWords) 898if (refArc != null && Arc.CompareIdenticalTransitions(refArc, arc) == 0) 904arcsToDelete ??= new Collection<Arc>(); 911foreach (Arc arc in arcsToDelete) 927foreach (Arc arc in state.OutArcs) 937foreach (Arc arc in state.OutArcs)
Internal\SrgsCompiler\Item.cs (2)
92System.Diagnostics.Debug.Assert(newEndState.OutArcs.CountIsOne && Arc.CompareContent(_endArc, newEndState.OutArcs.First) == 0); 144Arc epsilon = _backend.EpsilonTransition(weight);
Internal\SrgsCompiler\OneOf.cs (2)
67internal override void AddArc(Arc start, Arc end)
Internal\SrgsCompiler\ParseElementCollection.cs (20)
29Arc tagTransition = _backend.EpsilonTransition(1.0f); 58protected Arc InsertState(Arc arc, float weight, Position position) 74Arc epsilon = _backend.EpsilonTransition(weight); 95protected static Arc TrimStart(Arc start, Backend backend) 97Arc startArc = start; 126protected static Arc? TrimEnd(Arc? end, Backend backend) 132Arc endArc = end; 163internal void AddArc(Arc arc) { AddArc(arc, arc); } 174internal virtual void AddArc(Arc start, Arc end) 208Arc.CopyTags(_endArc, start, Direction.Right); 214Arc.CopyTags(start, _endArc, Direction.Left); 230Arc.CopyTags(start, _endArc, Direction.Left); 245Arc.CopyTags(_endArc, start, Direction.Right); 268Arc.CopyTags(start, _endArc, Direction.Left); 303protected Arc? _startArc; 304protected Arc? _endArc;
Internal\SrgsCompiler\Rule.cs (3)
241private static void TrimEndEpsilons(Arc end, Backend backend) 243Arc endArc = end; 256foreach (Arc inArc in endState.InArcs.ToList())
Internal\SrgsCompiler\RuleRef.cs (1)
73Arc rulerefArc = backend.RuleTransition(ruleRef, _rule, 1.0f);
Internal\SrgsCompiler\State.cs (19)
56List<Arc> outArcs = _outArcs.ToList(); 58Arc? lastArc = outArcs.Count > 0 ? outArcs[outArcs.Count - 1] : null; 60IEnumerator<Arc> enumArcs = ((IEnumerable<Arc>)outArcs).GetEnumerator(); 67foreach (Arc arc in outArcs) 89pWeights[iOffset++] = Arc.SerializeExtraEpsilonWithTag(streamBuffer, arc, lastArc == arc, nextAvailableArc); 96enumArcs = ((IEnumerable<Arc>)outArcs).GetEnumerator(); 103foreach (Arc arc in outArcs) 119pWeights[iOffset++] = Arc.SerializeExtraEpsilonWithTag(streamBuffer, arc, true, nextAvailableArc); 139foreach (Arc arc in _outArcs) 197foreach (Arc arc in _outArcs) 252foreach (Arc arc in _outArcs) 305foreach (Arc arc in _outArcs) 314foreach (Arc arc in _outArcs) 328foreach (Arc arc in _outArcs) 406Arc? arc1 = state1._outArcs != null && !state1._outArcs.IsEmpty ? state1._outArcs.First : null; 407Arc? arc2 = state2._outArcs != null && !state2._outArcs.IsEmpty ? state2._outArcs.First : null; 433foreach (Arc arc in _inArcs) 450foreach (Arc arc in _outArcs)