Exemple #1
0
        internal override void Validate(SrgsGrammar grammar)
        {
            SrgsTagFormat tagFormat = grammar.TagFormat;

            if (tagFormat == SrgsTagFormat.Default)
            {
                grammar.TagFormat |= SrgsTagFormat.KeyValuePairs;
            }
            else if (tagFormat != SrgsTagFormat.KeyValuePairs)
            {
                XmlParser.ThrowSrgsException(SRID.SapiPropertiesAndSemantics);
            }
        }
        internal static GrammarOptions TagFormat2GrammarOptions(SrgsTagFormat value)
        {
            GrammarOptions result = GrammarOptions.KeyValuePairs;

            switch (value)
            {
            case SrgsTagFormat.KeyValuePairs:
                result = GrammarOptions.KeyValuePairSrgs;
                break;

            case SrgsTagFormat.MssV1:
                result = GrammarOptions.MssV1;
                break;

            case SrgsTagFormat.W3cV1:
                result = GrammarOptions.W3cV1;
                break;
            }
            return(result);
        }
        internal static GrammarOptions TagFormat2GrammarOptions(SrgsTagFormat value)
        {
            GrammarOptions newValue = 0;

            switch (value)
            {
            case SrgsTagFormat.KeyValuePairs:
                newValue = GrammarOptions.KeyValuePairSrgs;
                break;

            case SrgsTagFormat.MssV1:
                newValue = GrammarOptions.MssV1;
                break;

            case SrgsTagFormat.W3cV1:
                newValue = GrammarOptions.W3cV1;
                break;
            }
            return(newValue);
        }
        internal static SrgsTagFormat GrammarOptions2TagFormat(GrammarOptions value)
        {
            SrgsTagFormat result = SrgsTagFormat.Default;

            switch (value & GrammarOptions.TagFormat)
            {
            case GrammarOptions.MssV1:
                result = SrgsTagFormat.MssV1;
                break;

            case GrammarOptions.W3cV1:
                result = SrgsTagFormat.W3cV1;
                break;

            case GrammarOptions.KeyValuePairs:
            case GrammarOptions.KeyValuePairSrgs:
                result = SrgsTagFormat.KeyValuePairs;
                break;
            }
            return(result);
        }
        internal void Validate()
        {
            bool hasPronunciation = HasSapiExtension = false;

            HasPronunciation = hasPronunciation;
            foreach (SrgsRule rule in _rules)
            {
                rule.Validate(this);
            }
            _isSapiExtensionUsed |= HasPronunciation;
            _fContainsCode       |= (_language != null || _script.Length > 0 || _usings.Count > 0 || _assemblyReferences.Count > 0 || _codebehind.Count > 0 || _namespace != null || _fDebug);
            _isSapiExtensionUsed |= _fContainsCode;
            if (!HasPronunciation)
            {
                PhoneticAlphabet = AlphabetType.Sapi;
            }
            if (_root != null && !_rules.Contains(_root))
            {
                XmlParser.ThrowSrgsException(SRID.RootNotDefined, _root.Id);
            }
            if (_globalTags.Count > 0)
            {
                _tagFormat = SrgsTagFormat.W3cV1;
            }
            if (_fContainsCode)
            {
                if (_tagFormat == SrgsTagFormat.Default)
                {
                    _tagFormat = SrgsTagFormat.KeyValuePairs;
                }
                if (_tagFormat != SrgsTagFormat.KeyValuePairs)
                {
                    XmlParser.ThrowSrgsException(SRID.InvalidSemanticProcessingType);
                }
            }
        }