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
- SoapProcessingBehavior.cs
- SoapRpcMethodAttribute.cs
- FixedPageStructure.cs
- CodeCompiler.cs
- HtmlSelect.cs
- FragmentNavigationEventArgs.cs
- EventLogHandle.cs
- ObjectPersistData.cs
- NameValuePair.cs
- XdrBuilder.cs
- TextContainerChangedEventArgs.cs
- WebPartCancelEventArgs.cs
- BinaryReader.cs
- XmlILCommand.cs
- xdrvalidator.cs
- QualifiedCellIdBoolean.cs
- ConnectionStringsSection.cs
- UiaCoreApi.cs
- DocobjHost.cs
- CompModSwitches.cs
- Assembly.cs
- SecurityAccessDeniedException.cs
- EdmSchemaError.cs
- TableRow.cs
- ReferencedCategoriesDocument.cs
- HtmlDocument.cs
- FormatVersion.cs
- Int32CollectionValueSerializer.cs
- GridView.cs
- CaseInsensitiveComparer.cs
- ServiceDurableInstance.cs
- ImpersonateTokenRef.cs
- ExportOptions.cs
- RubberbandSelector.cs
- LoginCancelEventArgs.cs
- BasicExpressionVisitor.cs
- MediaElement.cs
- FileDialogPermission.cs
- UserPersonalizationStateInfo.cs
- SyndicationElementExtensionCollection.cs
- PageVisual.cs
- PartialTrustHelpers.cs
- Light.cs
- Misc.cs
- GridToolTip.cs
- Header.cs
- GuidelineCollection.cs
- TraceListener.cs
- MessageDecoder.cs
- IfAction.cs
- TrustManagerPromptUI.cs
- BrowserInteropHelper.cs
- UIElementHelper.cs
- ByteAnimationBase.cs
- HandlerFactoryWrapper.cs
- WindowAutomationPeer.cs
- MultipleFilterMatchesException.cs
- login.cs
- SafeUserTokenHandle.cs
- InputDevice.cs
- FixedSOMContainer.cs
- DropShadowEffect.cs
- SequentialOutput.cs
- UriSchemeKeyedCollection.cs
- SynchronizingStream.cs
- DecoratedNameAttribute.cs
- SecurityContext.cs
- ClientReliableChannelBinder.cs
- TextPatternIdentifiers.cs
- XmlFormatWriterGenerator.cs
- PointCollectionValueSerializer.cs
- WbemProvider.cs
- MultipleViewProviderWrapper.cs
- TextContainerChangedEventArgs.cs
- SqlNodeTypeOperators.cs
- Typeface.cs
- SubtreeProcessor.cs
- ParseChildrenAsPropertiesAttribute.cs
- PersistenceProviderDirectory.cs
- ComEventsSink.cs
- DbDataRecord.cs
- PropertyValueUIItem.cs
- Visual3D.cs
- DecimalKeyFrameCollection.cs
- ValidationHelper.cs
- ContentFileHelper.cs
- ProxyWebPartConnectionCollection.cs
- VerticalAlignConverter.cs
- cookiecollection.cs
- DataColumnPropertyDescriptor.cs
- TimeZoneInfo.cs
- DataSet.cs
- RowToParametersTransformer.cs
- IgnoreSection.cs
- DataListItemCollection.cs
- DocumentSequenceHighlightLayer.cs
- ProtectedConfiguration.cs
- MetadataWorkspace.cs
- StylusPointPropertyInfoDefaults.cs
- DatePickerTextBox.cs