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
- PartialCachingControl.cs
- DesignerSerializationVisibilityAttribute.cs
- GridViewRowCollection.cs
- OletxTransactionManager.cs
- XmlSchemaSimpleContentExtension.cs
- PreviewPageInfo.cs
- WindowsListBox.cs
- DbTransaction.cs
- ImageClickEventArgs.cs
- NodeLabelEditEvent.cs
- DateTimeSerializationSection.cs
- SrgsNameValueTag.cs
- ProviderBase.cs
- WebPartMenu.cs
- SiblingIterators.cs
- AccessKeyManager.cs
- TextContainerChangeEventArgs.cs
- TimeManager.cs
- ForceCopyBuildProvider.cs
- ChildrenQuery.cs
- FixedPageStructure.cs
- Empty.cs
- Repeater.cs
- JsonQueryStringConverter.cs
- GridViewHeaderRowPresenter.cs
- PagedControl.cs
- HostProtectionException.cs
- StateItem.cs
- GridProviderWrapper.cs
- SymbolEqualComparer.cs
- XsltArgumentList.cs
- LogicalExpressionTypeConverter.cs
- HtmlTableCellCollection.cs
- StringUtil.cs
- PackWebResponse.cs
- DesignerDataConnection.cs
- Hashtable.cs
- InvalidOleVariantTypeException.cs
- DbRetry.cs
- PartialCachingControl.cs
- PersonalizationStateInfoCollection.cs
- NCryptNative.cs
- PublishLicense.cs
- XPathBinder.cs
- Propagator.ExtentPlaceholderCreator.cs
- ReadOnlyDictionary.cs
- DesignerSelectionListAdapter.cs
- BufferedConnection.cs
- SectionUpdates.cs
- DataServiceProviderMethods.cs
- ListViewItem.cs
- DataSourceHelper.cs
- MenuCommands.cs
- DiscoveryClientDocuments.cs
- ValidatorCompatibilityHelper.cs
- BamlResourceDeserializer.cs
- CalendarDay.cs
- Journaling.cs
- WindowsToolbarAsMenu.cs
- DataListCommandEventArgs.cs
- CodeMemberField.cs
- BinaryConverter.cs
- SettingsPropertyValue.cs
- PageHandlerFactory.cs
- DescendantOverDescendantQuery.cs
- KeyTimeConverter.cs
- HMACSHA256.cs
- PackWebResponse.cs
- SqlProviderManifest.cs
- DataSourceExpressionCollection.cs
- ToolBarDesigner.cs
- RemoveStoryboard.cs
- ICspAsymmetricAlgorithm.cs
- SystemIPGlobalProperties.cs
- TraceLog.cs
- EventLogEntry.cs
- AttachedProperty.cs
- StorageRoot.cs
- DnsEndPoint.cs
- ImageSource.cs
- UriTemplateTableMatchCandidate.cs
- SafeSystemMetrics.cs
- ProcessModuleDesigner.cs
- PrincipalPermission.cs
- WorkflowMarkupSerializerMapping.cs
- BamlResourceContent.cs
- Point3DValueSerializer.cs
- AsymmetricSignatureDeformatter.cs
- StringUtil.cs
- SecureUICommand.cs
- RegionIterator.cs
- PropertyFilterAttribute.cs
- StorageAssociationSetMapping.cs
- TextBlockAutomationPeer.cs
- SerializationException.cs
- MethodBuilder.cs
- KeyboardDevice.cs
- LocalizabilityAttribute.cs
- log.cs
- ContainerTracking.cs