Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Recognition / SrgsGrammar / SrgsGrammarCompiler.cs / 1 / SrgsGrammarCompiler.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: // // History: // 6/1/2004 jeanfp //--------------------------------------------------------------------------- using System; using System.IO; using System.Xml; using System.Speech.Internal; using System.Speech.Internal.SrgsCompiler; namespace System.Speech.Recognition.SrgsGrammar { ////// Compiles Xml Srgs data into a CFG /// public static class SrgsGrammarCompiler { //******************************************************************* // // Public Methods // //******************************************************************* #region Public Methods ////// Compiles a grammar to a file /// /// /// static public void Compile (string inputPath, Stream outputStream) { Helpers.ThrowIfEmptyOrNull (inputPath, "inputPath"); Helpers.ThrowIfNull (outputStream, "outputStream"); using (XmlTextReader reader = new XmlTextReader (new Uri (inputPath, UriKind.RelativeOrAbsolute).ToString ())) { SrgsCompiler.CompileStream (new XmlReader [] { reader }, null, outputStream, true, null, null, null); } } ////// Compiles an Srgs documentto a file /// /// /// static public void Compile (SrgsDocument srgsGrammar, Stream outputStream) { Helpers.ThrowIfNull (srgsGrammar, "srgsGrammar"); Helpers.ThrowIfNull (outputStream, "outputStream"); SrgsCompiler.CompileStream (srgsGrammar, null, outputStream, true, null, null); } ////// Compiles a grammar to a file /// /// /// static public void Compile (XmlReader reader, Stream outputStream) { Helpers.ThrowIfNull (reader, "reader"); Helpers.ThrowIfNull (outputStream, "outputStream"); SrgsCompiler.CompileStream (new XmlReader [] { reader }, null, outputStream, true, null, null, null); } #if !NO_STG ////// Compiles a grammar to a file /// /// /// /// /// static public void CompileClassLibrary (string [] inputPaths, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (inputPaths, "inputPaths"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); XmlTextReader [] readers = new XmlTextReader [inputPaths.Length]; try { for (int iFile = 0; iFile < inputPaths.Length; iFile++) { if (inputPaths [iFile] == null) { throw new ArgumentException (SR.Get (SRID.ArrayOfNullIllegal), "inputPaths"); } readers [iFile] = new XmlTextReader (new Uri (inputPaths [iFile], UriKind.RelativeOrAbsolute).ToString ()); } SrgsCompiler.CompileStream (readers, outputPath, null, false, null, referencedAssemblies, keyFile); } finally { for (int iReader = 0; iReader < readers.Length; iReader++) { XmlTextReader srgsGrammar = readers [iReader]; if (srgsGrammar != null) { ((IDisposable) srgsGrammar).Dispose (); } } } } ////// Compiles an Srgs documentto a file /// /// /// /// /// static public void CompileClassLibrary (SrgsDocument srgsGrammar, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (srgsGrammar, "srgsGrammar"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); SrgsCompiler.CompileStream (srgsGrammar, outputPath, null, false, referencedAssemblies, keyFile); } ////// Compiles a grammar to a file /// /// /// /// /// static public void CompileClassLibrary (XmlReader reader, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (reader, "reader"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); SrgsCompiler.CompileStream (new XmlReader [] { reader }, outputPath, null, false, null, referencedAssemblies, keyFile); } #endif #endregion //******************************************************************** // // Internal Methods // //******************************************************************* #region Internal Methods // Decide if the input stream is a cfg. // If not assume it's an xml grammar. // The stream parameter points to the start of the data on entry and is reset to that point on exit. static private bool CheckIfCfg (Stream stream, out int cfgLength) { long initialPosition = stream.Position; bool isCfg = CfgGrammar.CfgSerializedHeader.IsCfg (stream, out cfgLength); // Reset stream position: stream.Position = initialPosition; return isCfg; } static internal void CompileXmlOrCopyCfg ( Stream inputStream, Stream outputStream, Uri orginalUri) { // Wrap stream in case Seek is not supported: SeekableReadStream seekableInputStream = new SeekableReadStream (inputStream); // See if CFG or XML document: int cfgLength; bool isCFG = CheckIfCfg (seekableInputStream, out cfgLength); seekableInputStream.CacheDataForSeeking = false; // Stop buffering data if (isCFG) { // Just copy the input to the output: // {We later check the header on the output stream - we could do it on the input stream but it may not be seekable}. Helpers.CopyStream (seekableInputStream, outputStream, cfgLength); } else { // Else compile the Xml: SrgsCompiler.CompileStream (new XmlReader [] { new XmlTextReader (seekableInputStream) }, null, outputStream, true, orginalUri, null, null); } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: // // History: // 6/1/2004 jeanfp //--------------------------------------------------------------------------- using System; using System.IO; using System.Xml; using System.Speech.Internal; using System.Speech.Internal.SrgsCompiler; namespace System.Speech.Recognition.SrgsGrammar { ////// Compiles Xml Srgs data into a CFG /// public static class SrgsGrammarCompiler { //******************************************************************* // // Public Methods // //******************************************************************* #region Public Methods ////// Compiles a grammar to a file /// /// /// static public void Compile (string inputPath, Stream outputStream) { Helpers.ThrowIfEmptyOrNull (inputPath, "inputPath"); Helpers.ThrowIfNull (outputStream, "outputStream"); using (XmlTextReader reader = new XmlTextReader (new Uri (inputPath, UriKind.RelativeOrAbsolute).ToString ())) { SrgsCompiler.CompileStream (new XmlReader [] { reader }, null, outputStream, true, null, null, null); } } ////// Compiles an Srgs documentto a file /// /// /// static public void Compile (SrgsDocument srgsGrammar, Stream outputStream) { Helpers.ThrowIfNull (srgsGrammar, "srgsGrammar"); Helpers.ThrowIfNull (outputStream, "outputStream"); SrgsCompiler.CompileStream (srgsGrammar, null, outputStream, true, null, null); } ////// Compiles a grammar to a file /// /// /// static public void Compile (XmlReader reader, Stream outputStream) { Helpers.ThrowIfNull (reader, "reader"); Helpers.ThrowIfNull (outputStream, "outputStream"); SrgsCompiler.CompileStream (new XmlReader [] { reader }, null, outputStream, true, null, null, null); } #if !NO_STG ////// Compiles a grammar to a file /// /// /// /// /// static public void CompileClassLibrary (string [] inputPaths, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (inputPaths, "inputPaths"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); XmlTextReader [] readers = new XmlTextReader [inputPaths.Length]; try { for (int iFile = 0; iFile < inputPaths.Length; iFile++) { if (inputPaths [iFile] == null) { throw new ArgumentException (SR.Get (SRID.ArrayOfNullIllegal), "inputPaths"); } readers [iFile] = new XmlTextReader (new Uri (inputPaths [iFile], UriKind.RelativeOrAbsolute).ToString ()); } SrgsCompiler.CompileStream (readers, outputPath, null, false, null, referencedAssemblies, keyFile); } finally { for (int iReader = 0; iReader < readers.Length; iReader++) { XmlTextReader srgsGrammar = readers [iReader]; if (srgsGrammar != null) { ((IDisposable) srgsGrammar).Dispose (); } } } } ////// Compiles an Srgs documentto a file /// /// /// /// /// static public void CompileClassLibrary (SrgsDocument srgsGrammar, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (srgsGrammar, "srgsGrammar"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); SrgsCompiler.CompileStream (srgsGrammar, outputPath, null, false, referencedAssemblies, keyFile); } ////// Compiles a grammar to a file /// /// /// /// /// static public void CompileClassLibrary (XmlReader reader, string outputPath, string [] referencedAssemblies, string keyFile) { Helpers.ThrowIfNull (reader, "reader"); Helpers.ThrowIfEmptyOrNull (outputPath, "outputPath"); SrgsCompiler.CompileStream (new XmlReader [] { reader }, outputPath, null, false, null, referencedAssemblies, keyFile); } #endif #endregion //******************************************************************** // // Internal Methods // //******************************************************************* #region Internal Methods // Decide if the input stream is a cfg. // If not assume it's an xml grammar. // The stream parameter points to the start of the data on entry and is reset to that point on exit. static private bool CheckIfCfg (Stream stream, out int cfgLength) { long initialPosition = stream.Position; bool isCfg = CfgGrammar.CfgSerializedHeader.IsCfg (stream, out cfgLength); // Reset stream position: stream.Position = initialPosition; return isCfg; } static internal void CompileXmlOrCopyCfg ( Stream inputStream, Stream outputStream, Uri orginalUri) { // Wrap stream in case Seek is not supported: SeekableReadStream seekableInputStream = new SeekableReadStream (inputStream); // See if CFG or XML document: int cfgLength; bool isCFG = CheckIfCfg (seekableInputStream, out cfgLength); seekableInputStream.CacheDataForSeeking = false; // Stop buffering data if (isCFG) { // Just copy the input to the output: // {We later check the header on the output stream - we could do it on the input stream but it may not be seekable}. Helpers.CopyStream (seekableInputStream, outputStream, cfgLength); } else { // Else compile the Xml: SrgsCompiler.CompileStream (new XmlReader [] { new XmlTextReader (seekableInputStream) }, null, outputStream, true, orginalUri, null, null); } } #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
- TypeDescriptionProviderAttribute.cs
- CodeDomLoader.cs
- ExecutionContext.cs
- PersonalizationStateQuery.cs
- MsmqMessageProperty.cs
- SqlBulkCopyColumnMappingCollection.cs
- RouteValueDictionary.cs
- ApplicationServiceHelper.cs
- DATA_BLOB.cs
- InkCanvasInnerCanvas.cs
- SignatureToken.cs
- CalculatedColumn.cs
- PagePropertiesChangingEventArgs.cs
- SmtpSection.cs
- UnsupportedPolicyOptionsException.cs
- SystemWebCachingSectionGroup.cs
- FixedFindEngine.cs
- InnerItemCollectionView.cs
- DBSqlParserColumn.cs
- WebPageTraceListener.cs
- ClickablePoint.cs
- IdnElement.cs
- DetailsView.cs
- BatchParser.cs
- CLSCompliantAttribute.cs
- ObjectReferenceStack.cs
- HandlerBase.cs
- BooleanFunctions.cs
- XmlSchemaSimpleTypeList.cs
- ToolStripSystemRenderer.cs
- ObsoleteAttribute.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SelfIssuedTokenFactoryCredential.cs
- QueryOutputWriter.cs
- FontFamily.cs
- MetadataWorkspace.cs
- CodeTypeParameterCollection.cs
- SplashScreenNativeMethods.cs
- CallSiteOps.cs
- CacheHelper.cs
- xmlglyphRunInfo.cs
- ByteConverter.cs
- XPathSingletonIterator.cs
- QueryExecutionOption.cs
- wgx_sdk_version.cs
- Animatable.cs
- Stroke2.cs
- GridViewDeleteEventArgs.cs
- GeometryGroup.cs
- WsatConfiguration.cs
- MaterialCollection.cs
- SqlNotificationEventArgs.cs
- Vector3DValueSerializer.cs
- AssemblyInfo.cs
- TabControlAutomationPeer.cs
- CompilationUtil.cs
- BindingNavigator.cs
- CollectionViewGroupInternal.cs
- XsdDataContractExporter.cs
- StandardMenuStripVerb.cs
- BaseResourcesBuildProvider.cs
- ObjectPersistData.cs
- RecordManager.cs
- ApplicationHost.cs
- GridItemCollection.cs
- ProfileSettingsCollection.cs
- RenderCapability.cs
- DependencyPropertyValueSerializer.cs
- ProxyAttribute.cs
- ProxyElement.cs
- TemplateBindingExpression.cs
- ScaleTransform3D.cs
- TableRow.cs
- ToolStripItemImageRenderEventArgs.cs
- CharEntityEncoderFallback.cs
- PagedDataSource.cs
- ListViewItemEventArgs.cs
- Geometry3D.cs
- SoapTypeAttribute.cs
- PriorityQueue.cs
- ListViewUpdateEventArgs.cs
- WebServiceData.cs
- StylusPointPropertyId.cs
- LayoutExceptionEventArgs.cs
- WebPartVerb.cs
- GroupDescription.cs
- MimeTypeMapper.cs
- SqlFileStream.cs
- DocumentViewerHelper.cs
- OracleInternalConnection.cs
- AsyncInvokeContext.cs
- Control.cs
- indexingfiltermarshaler.cs
- RawMouseInputReport.cs
- XmlSchemaCompilationSettings.cs
- InputManager.cs
- AssociatedControlConverter.cs
- ProtocolViolationException.cs
- UInt32Storage.cs
- DurableInstanceManager.cs