/* 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.
 */

#include "support/StringUtils.h"

#include "ANTLRFileStream.h"

using namespace antlr4;

void ANTLRFileStream::loadFromFile(const std::string &fileName) {
  _fileName = fileName;
  if (_fileName.empty()) {
    return;
  }

#ifdef _MSC_VER
  std::ifstream stream(antlrcpp::s2ws(fileName), std::ios::binary);
#else
  std::ifstream stream(fileName, std::ios::binary);
#endif

  ANTLRInputStream::load(stream);
}

std::string ANTLRFileStream::getSourceName() const {
  return _fileName;
}
