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
- Route.cs
- ConfigXmlSignificantWhitespace.cs
- _BufferOffsetSize.cs
- DataGridViewTextBoxCell.cs
- __ComObject.cs
- WindowsBrush.cs
- ImageButton.cs
- TrackingStringDictionary.cs
- sqlstateclientmanager.cs
- ECDiffieHellmanCng.cs
- HtmlForm.cs
- EntityClassGenerator.cs
- QilExpression.cs
- RightsManagementInformation.cs
- RectangleHotSpot.cs
- ParameterCollection.cs
- TableStyle.cs
- WebPartCatalogCloseVerb.cs
- ParallelQuery.cs
- StringExpressionSet.cs
- HiddenField.cs
- CheckoutException.cs
- MultipartIdentifier.cs
- filewebrequest.cs
- xml.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- ObjectParameterCollection.cs
- TrackingProfileCache.cs
- FontFamily.cs
- CodeIdentifiers.cs
- unsafenativemethodstextservices.cs
- CounterSample.cs
- ControlBuilder.cs
- NetDataContractSerializer.cs
- XmlMembersMapping.cs
- SrgsItemList.cs
- ServicesUtilities.cs
- DataSourceControlBuilder.cs
- ToolStripManager.cs
- NamedPipeProcessProtocolHandler.cs
- ToolBar.cs
- HyperLinkStyle.cs
- CardSpaceException.cs
- InstancePersistenceException.cs
- StringToken.cs
- StringToken.cs
- QueryExpr.cs
- ConfigXmlSignificantWhitespace.cs
- EncodingInfo.cs
- ParameterCollection.cs
- SourceItem.cs
- ConnectivityStatus.cs
- wmiprovider.cs
- TreeViewImageGenerator.cs
- HMACSHA1.cs
- StreamInfo.cs
- UnsafeNativeMethods.cs
- MenuScrollingVisibilityConverter.cs
- CallContext.cs
- SuppressIldasmAttribute.cs
- OverlappedAsyncResult.cs
- ObjectViewListener.cs
- AssemblyAttributesGoHere.cs
- CollectionViewGroupInternal.cs
- DBDataPermissionAttribute.cs
- IRCollection.cs
- EffectiveValueEntry.cs
- GcSettings.cs
- WizardStepBase.cs
- StylusPlugin.cs
- WebReferencesBuildProvider.cs
- GetRecipientRequest.cs
- Quad.cs
- MsmqIntegrationProcessProtocolHandler.cs
- AsymmetricSignatureDeformatter.cs
- CommonDialog.cs
- DiscoveryEndpoint.cs
- XPathParser.cs
- BuildProvider.cs
- PrivateFontCollection.cs
- WindowsTreeView.cs
- PageCodeDomTreeGenerator.cs
- AndCondition.cs
- SBCSCodePageEncoding.cs
- UrlMappingCollection.cs
- DefaultEvaluationContext.cs
- SHA256.cs
- FindSimilarActivitiesVerb.cs
- FilterQueryOptionExpression.cs
- XmlAnyElementAttribute.cs
- PolyBezierSegment.cs
- PeerConnector.cs
- UrlParameterReader.cs
- CellParagraph.cs
- AttributeData.cs
- XamlToRtfParser.cs
- StrongNameMembershipCondition.cs
- XPathSelectionIterator.cs
- ArraySet.cs
- GridView.cs