internal MetaParseOptions(
     MetaLanguageVersion languageVersion,
     DocumentationMode documentationMode,
     SourceCodeKind kind,
     ImmutableArray <string> preprocessorSymbols,
     IReadOnlyDictionary <string, string> features)
     : base(languageVersion, documentationMode, kind, preprocessorSymbols, features)
 {
 }
 public MetaParseOptions(
     MetaLanguageVersion languageVersion = null,
     DocumentationMode documentationMode = DocumentationMode.Parse,
     SourceCodeKind kind = SourceCodeKind.Regular,
     IEnumerable <string> preprocessorSymbols = null)
     : this(languageVersion ?? MetaLanguageVersion.Meta1,
            documentationMode,
            kind,
            preprocessorSymbols.ToImmutableArrayOrEmpty(),
            ImmutableDictionary <string, string> .Empty)
 {
 }
        public MetaParseOptions WithLanguageVersion(MetaLanguageVersion version)
        {
            if (version == this.SpecifiedLanguageVersion)
            {
                return(this);
            }
            var effectiveLanguageVersion = (MetaLanguageVersion)version.MapSpecifiedToEffectiveVersion();

            return(new MetaParseOptions(this)
            {
                SpecifiedLanguageVersion = version, LanguageVersion = effectiveLanguageVersion
            });
        }