public override TextReader GetReader()
        {
            Stream stream = OpenStream();

            if (stream == null)
            {
                throw new InvalidImplementationException();
            }

            TextReader reader;
            Encoding   encoding = _defaultEncoding;

            if (_engine != null)
            {
                reader = LanguageContext.FromEngine(_engine).GetSourceReader(stream, encoding);
            }
            else if (encoding != null)
            {
                reader = new StreamReader(stream, encoding, true);
            }
            else
            {
                reader = new StreamReader(stream, true);
            }

            return(reader);
        }