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
- NextPreviousPagerField.cs
- SelectionEditor.cs
- ItemCollectionEditor.cs
- PixelShader.cs
- ZipIOModeEnforcingStream.cs
- Visual.cs
- GregorianCalendar.cs
- SafeRightsManagementHandle.cs
- Process.cs
- SymbolMethod.cs
- Compilation.cs
- ProcessHostFactoryHelper.cs
- ListControlBoundActionList.cs
- XslNumber.cs
- ScrollBarRenderer.cs
- ContractComponent.cs
- ping.cs
- X509CertificateInitiatorServiceCredential.cs
- MarkupCompilePass1.cs
- DataTableMapping.cs
- OleDbEnumerator.cs
- MessageSmuggler.cs
- AnyReturnReader.cs
- GenericTransactionFlowAttribute.cs
- InlinedAggregationOperatorEnumerator.cs
- Accessible.cs
- ReaderWriterLockWrapper.cs
- GatewayIPAddressInformationCollection.cs
- AppSettingsExpressionBuilder.cs
- SourceFileBuildProvider.cs
- BufferAllocator.cs
- AsyncPostBackErrorEventArgs.cs
- TaskFormBase.cs
- EncoderFallback.cs
- CheckBoxBaseAdapter.cs
- DataGridViewRowsAddedEventArgs.cs
- FixedDocumentPaginator.cs
- TraceContextRecord.cs
- OperatingSystem.cs
- ListDataHelper.cs
- KnownTypes.cs
- ReadOnlyCollection.cs
- StackOverflowException.cs
- NetworkInformationException.cs
- HtmlTitle.cs
- DocumentPaginator.cs
- DataGridHeaderBorder.cs
- XmlNodeComparer.cs
- WebPartMovingEventArgs.cs
- CultureInfo.cs
- WindowPattern.cs
- InternalDuplexChannelListener.cs
- ViewStateModeByIdAttribute.cs
- UniqueConstraint.cs
- ChildDocumentBlock.cs
- EnumBuilder.cs
- _LocalDataStoreMgr.cs
- Debug.cs
- TypedElement.cs
- PropertyEmitter.cs
- DispatcherOperation.cs
- ModifierKeysConverter.cs
- PixelFormats.cs
- XmlILTrace.cs
- DisplayMemberTemplateSelector.cs
- IOThreadScheduler.cs
- embossbitmapeffect.cs
- ImplicitInputBrush.cs
- GroupJoinQueryOperator.cs
- SamlAdvice.cs
- SqlDataSourceEnumerator.cs
- Parallel.cs
- ScalarRestriction.cs
- DateTimeFormat.cs
- WindowsSspiNegotiation.cs
- PostBackOptions.cs
- PixelFormats.cs
- FormViewDeleteEventArgs.cs
- DecoderFallback.cs
- ConfigurationManagerHelper.cs
- MemberInitExpression.cs
- UseManagedPresentationBindingElement.cs
- FormViewUpdatedEventArgs.cs
- LoginCancelEventArgs.cs
- Metadata.cs
- XmlEncodedRawTextWriter.cs
- SequentialWorkflowHeaderFooter.cs
- CharacterBuffer.cs
- MemoryStream.cs
- View.cs
- LogicalTreeHelper.cs
- OleDbException.cs
- SynchronizedInputHelper.cs
- TimerEventSubscription.cs
- UpdateProgress.cs
- ZipIOFileItemStream.cs
- XPathMessageFilter.cs
- Panel.cs
- DesignTimeType.cs
- ActivitiesCollection.cs