blob: e74df8c83f97394956d375b4fa88552c2d1d2e85 [file] [log] [blame] [edit]
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
* Use of this file is governed by the BSD 3-clause license that
* can be found in the LICENSE.txt file in the project root.
*/
using Encoding = System.Text.Encoding;
using File = System.IO.File;
namespace Antlr4.Runtime
{
/// <summary>
/// This is an
/// <see cref="AntlrInputStream"/>
/// that is loaded from a file all at once
/// when you construct the object.
/// </summary>
public class AntlrFileStream : AntlrInputStream
{
protected internal string fileName;
/// <exception cref="System.IO.IOException"/>
public AntlrFileStream(string fileName)
: this(fileName, null)
{
}
/// <exception cref="System.IO.IOException"/>
public AntlrFileStream(string fileName, Encoding encoding)
{
this.fileName = fileName;
Load(fileName, encoding);
}
/// <exception cref="System.IO.IOException"/>
public virtual void Load(string fileName, Encoding encoding)
{
if (fileName == null)
{
return;
}
string text;
if (encoding != null)
text = File.ReadAllText(fileName, encoding);
else
text = File.ReadAllText(fileName);
data = text.ToCharArray();
n = data.Length;
}
public override string SourceName
{
get
{
return fileName;
}
}
}
}