Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / SrgsCompiler / OneOf.cs / 1 / OneOf.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- #region Using directives using System; using System.Speech.Internal.SrgsParser; #endregion namespace System.Speech.Internal.SrgsCompiler { internal class OneOf : ParseElementCollection, IOneOf { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors ////// Process the 'one-of' element. /// /// /// public OneOf (Rule rule, Backend backend) : base (backend, rule) { // Create a start and end start. _startState = _backend.CreateNewState (rule); _endState = _backend.CreateNewState (rule); //Add before the start state an epsilon arc _startArc = _backend.EpsilonTransition (1.0f); _startArc.End = _startState; //Add after the end state an epsilon arc _endArc = _backend.EpsilonTransition (1.0f); _endArc.Start = _endState; } #endregion //******************************************************************** // // Internal Method // //******************************************************************* #region Internal Method ////// Process the '/one-of' element. /// Connects all the arsc into an exit enf point. /// /// Verify OneOf contains at least one child 'item'. /// /// void IElement.PostParse (IElement parentElement) { if (_startArc.End.OutArcs.IsEmpty) { XmlParser.ThrowSrgsException (SRID.EmptyOneOf); } // Remove the extraneous arc and state if possible at the start and end _startArc = TrimStart (_startArc, _backend); _endArc = TrimEnd (_endArc, _backend); // Connect the one-of to the parrent base.PostParse ((ParseElementCollection) parentElement); } #endregion //******************************************************************** // // Protected Method // //******************************************************************** #region Protected Method ////// Adds a new arc to the one-of /// /// /// internal override void AddArc (Arc start, Arc end) { start = TrimStart (start, _backend); end = TrimEnd (end, _backend); State endStartState = end.Start; State startEndState = start.End; // Connect the previous arc with the 'start' set the intertion point if (start.IsEpsilonTransition & start.IsPropertylessTransition && startEndState != null && startEndState.InArcs.IsEmpty) { System.Diagnostics.Debug.Assert (start.End == startEndState); start.End = null; _backend.MoveOutputTransitionsAndDeleteState (startEndState, _startState); } else { start.Start = _startState; } // Connect with the epsilon transition at the end if (end.IsEpsilonTransition & end.IsPropertylessTransition && endStartState != null && endStartState.OutArcs.IsEmpty) { System.Diagnostics.Debug.Assert (end.Start == endStartState); end.Start = null; _backend.MoveInputTransitionsAndDeleteState (endStartState, _endState); } else { end.End = _endState; } } #endregion //******************************************************************* // // Protected Method // //******************************************************************** #region Protected Method private State _startState; private State _endState; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeChangedEventArgs.cs
- TriggerAction.cs
- LinqDataSourceValidationException.cs
- HostingEnvironmentSection.cs
- ReservationNotFoundException.cs
- TraceInternal.cs
- Inflater.cs
- StylusButtonEventArgs.cs
- DataGridBoolColumn.cs
- XmlObjectSerializerReadContext.cs
- Stylesheet.cs
- Brushes.cs
- SiteOfOriginPart.cs
- PaginationProgressEventArgs.cs
- DataListItemCollection.cs
- MimeTextImporter.cs
- PointUtil.cs
- DataColumn.cs
- TypeConverterHelper.cs
- SqlParameter.cs
- WindowsStatusBar.cs
- CompleteWizardStep.cs
- WindowsListViewItemStartMenu.cs
- RouteParametersHelper.cs
- ByteAnimation.cs
- StylusSystemGestureEventArgs.cs
- DataKeyArray.cs
- SamlSubject.cs
- ConditionalExpression.cs
- WindowsAuthenticationModule.cs
- FilterElement.cs
- DataBinder.cs
- BitmapEffectCollection.cs
- NamedPermissionSet.cs
- WindowInteropHelper.cs
- CompositeActivityTypeDescriptorProvider.cs
- CustomErrorsSectionWrapper.cs
- CommentEmitter.cs
- HyperLink.cs
- DesignBindingEditor.cs
- DynamicQueryableWrapper.cs
- PrintPreviewDialog.cs
- Point3DAnimationUsingKeyFrames.cs
- TextBoxAutoCompleteSourceConverter.cs
- OrderedDictionary.cs
- WebPartZone.cs
- PresentationAppDomainManager.cs
- ErrorHandler.cs
- Knowncolors.cs
- ContainerUtilities.cs
- EncryptedReference.cs
- PathFigure.cs
- ZoneMembershipCondition.cs
- AuthenticationModuleElement.cs
- SelectorAutomationPeer.cs
- SqlRecordBuffer.cs
- NavigationPropertyAccessor.cs
- QueryExpression.cs
- TransformerTypeCollection.cs
- TripleDESCryptoServiceProvider.cs
- SecurityPolicySection.cs
- ProtocolViolationException.cs
- ReliabilityContractAttribute.cs
- SafeBitVector32.cs
- ResourceWriter.cs
- PageParserFilter.cs
- FrameworkContentElement.cs
- Queue.cs
- CryptoConfig.cs
- EntityDataSourceDesignerHelper.cs
- InputReport.cs
- PersianCalendar.cs
- MachineKeyConverter.cs
- CodeIndexerExpression.cs
- ExpressionVisitorHelpers.cs
- HTMLTextWriter.cs
- HtmlDocument.cs
- ContentTextAutomationPeer.cs
- GroupItem.cs
- InstanceCreationEditor.cs
- GlyphInfoList.cs
- DataPagerCommandEventArgs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- XsltInput.cs
- selecteditemcollection.cs
- BitmapEffectInput.cs
- RequestCacheValidator.cs
- fixedPageContentExtractor.cs
- PermissionListSet.cs
- Subtree.cs
- DataTableReaderListener.cs
- ControlFilterExpression.cs
- AnimatedTypeHelpers.cs
- Screen.cs
- MultipleViewPatternIdentifiers.cs
- XPathScanner.cs
- UserInitiatedNavigationPermission.cs
- RelationshipType.cs
- BaseParagraph.cs
- SqlConnectionString.cs