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
- HashJoinQueryOperatorEnumerator.cs
- PositiveTimeSpanValidatorAttribute.cs
- AddressAccessDeniedException.cs
- BufferedReadStream.cs
- HWStack.cs
- PcmConverter.cs
- DetailsViewCommandEventArgs.cs
- NameNode.cs
- dbdatarecord.cs
- CrossContextChannel.cs
- TaiwanLunisolarCalendar.cs
- ApplicationServiceManager.cs
- SiteIdentityPermission.cs
- OleDbConnectionInternal.cs
- XmlDocument.cs
- TextSchema.cs
- CodeRemoveEventStatement.cs
- EditorReuseAttribute.cs
- SizeAnimationBase.cs
- MailSettingsSection.cs
- MenuItemCollection.cs
- LiteralTextParser.cs
- _OverlappedAsyncResult.cs
- VirtualPathUtility.cs
- ColumnWidthChangingEvent.cs
- SpecialTypeDataContract.cs
- ServiceInstanceProvider.cs
- CompositeActivityCodeGenerator.cs
- BitmapSourceSafeMILHandle.cs
- SystemException.cs
- ListItemConverter.cs
- DbQueryCommandTree.cs
- MappingModelBuildProvider.cs
- WorkflowRuntimeSection.cs
- TableLayoutRowStyleCollection.cs
- SQLMoneyStorage.cs
- MetafileHeaderWmf.cs
- RenamedEventArgs.cs
- CollectionDataContract.cs
- PrivilegedConfigurationManager.cs
- XomlDesignerLoader.cs
- DbProviderFactories.cs
- SocketException.cs
- DesignerOptionService.cs
- PaginationProgressEventArgs.cs
- ProcessManager.cs
- XsdDateTime.cs
- ClientConvert.cs
- CommunicationException.cs
- FormViewRow.cs
- LocalValueEnumerator.cs
- CollaborationHelperFunctions.cs
- ControlCollection.cs
- DesignTimeParseData.cs
- GcHandle.cs
- RequestCache.cs
- EventMemberCodeDomSerializer.cs
- RtfNavigator.cs
- SourceChangedEventArgs.cs
- SqlFileStream.cs
- PassportIdentity.cs
- EdmToObjectNamespaceMap.cs
- PerfService.cs
- SystemException.cs
- _LoggingObject.cs
- Transform3DGroup.cs
- StructuralObject.cs
- SelectingProviderEventArgs.cs
- OleCmdHelper.cs
- DbDataSourceEnumerator.cs
- XmlIgnoreAttribute.cs
- WindowPatternIdentifiers.cs
- PageTheme.cs
- ActivitySurrogateSelector.cs
- TreeViewItem.cs
- Exceptions.cs
- ReachDocumentPageSerializerAsync.cs
- ReflectionHelper.cs
- updateconfighost.cs
- OleDbRowUpdatedEvent.cs
- DetailsViewDeleteEventArgs.cs
- PrintControllerWithStatusDialog.cs
- XmlSerializableWriter.cs
- ProgressPage.cs
- JsonReaderDelegator.cs
- ColorInterpolationModeValidation.cs
- XmlCharacterData.cs
- SpellerHighlightLayer.cs
- _ListenerRequestStream.cs
- ConstructorBuilder.cs
- OleCmdHelper.cs
- SoapSchemaMember.cs
- SpStreamWrapper.cs
- SqlRecordBuffer.cs
- InsufficientExecutionStackException.cs
- ConfigurationException.cs
- GeometryDrawing.cs
- ColumnMapVisitor.cs
- CachedBitmap.cs
- Util.cs