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
- NumberSubstitution.cs
- FacetDescription.cs
- RoleService.cs
- ComPlusTypeLoader.cs
- EventDescriptor.cs
- WebSysDisplayNameAttribute.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- ValidateNames.cs
- ListenDesigner.cs
- FactoryGenerator.cs
- SharedConnectionWorkflowTransactionService.cs
- ButtonFlatAdapter.cs
- ErrorWrapper.cs
- TextRange.cs
- BufferedOutputStream.cs
- TreeNodeClickEventArgs.cs
- Comparer.cs
- ListItemCollection.cs
- PermissionListSet.cs
- FileVersionInfo.cs
- TargetInvocationException.cs
- ConfigUtil.cs
- CompilerGeneratedAttribute.cs
- DataRowView.cs
- XmlSchemaAppInfo.cs
- RegisteredHiddenField.cs
- SecUtil.cs
- ParseChildrenAsPropertiesAttribute.cs
- Avt.cs
- SafeTokenHandle.cs
- CellTreeNode.cs
- IOException.cs
- ComplexLine.cs
- ObjectListItem.cs
- MenuItem.cs
- XPathQilFactory.cs
- EditorZone.cs
- AsyncOperationLifetimeManager.cs
- DataBoundControlParameterTarget.cs
- OleDbRowUpdatedEvent.cs
- IERequestCache.cs
- HtmlInputFile.cs
- StructuredProperty.cs
- Component.cs
- SmiEventSink.cs
- SpanIndex.cs
- Vector3DAnimation.cs
- WebFaultClientMessageInspector.cs
- HMACSHA384.cs
- SizeIndependentAnimationStorage.cs
- _LazyAsyncResult.cs
- CheckBoxList.cs
- SiblingIterators.cs
- ChannelManagerHelpers.cs
- DataGridCellsPresenter.cs
- AutoGeneratedFieldProperties.cs
- SByte.cs
- ClientScriptManager.cs
- TypeDescriptionProvider.cs
- Serializer.cs
- InstanceCreationEditor.cs
- BitConverter.cs
- ReadWriteObjectLock.cs
- LogFlushAsyncResult.cs
- ArcSegment.cs
- EncodingDataItem.cs
- CodeSubDirectoriesCollection.cs
- AutomationPropertyInfo.cs
- CommandEventArgs.cs
- ExchangeUtilities.cs
- RoutedEventHandlerInfo.cs
- ModifiableIteratorCollection.cs
- KeyMatchBuilder.cs
- Content.cs
- TextEffect.cs
- MdImport.cs
- SystemResourceKey.cs
- Action.cs
- WebScriptServiceHost.cs
- VirtualPath.cs
- CommandSet.cs
- WebPartConnectVerb.cs
- CompModHelpers.cs
- ResourceProviderFactory.cs
- ConnectionStringsSection.cs
- AmbientProperties.cs
- CodeTypeReference.cs
- XmlUrlResolver.cs
- DocumentPageView.cs
- TdsParserStateObject.cs
- RectConverter.cs
- StructuralType.cs
- entityreference_tresulttype.cs
- DiagnosticTrace.cs
- FactoryId.cs
- Error.cs
- EntityFunctions.cs
- DragSelectionMessageFilter.cs
- DataGridViewCellCancelEventArgs.cs
- BulletChrome.cs