UNPKG

antlr4-runtime

Version:

JavaScript runtime for ANTLR4

41 lines (35 loc) 1.17 kB
/* Copyright (c) 2012-2022 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. */ import InputStream from './InputStream.js'; import CharStream from './CharStream.js'; const isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null; import fs from 'fs'; /** * This is an InputStream that is loaded from a file all at once * when you construct the object. */ export default class FileStream extends InputStream { static fromPath(path, encoding, callback) { if(!isNode) throw new Error("FileStream is only available when running in Node!"); fs.readFile(path, encoding, function(err, data) { let is = null; if (data !== null) { is = new CharStream(data, true); } callback(err, is); }); } constructor(fileName, encoding, decodeToUnicodeCodePoints) { if(!isNode) throw new Error("FileStream is only available when running in Node!"); const data = fs.readFileSync(fileName, encoding || "utf-8" ); super(data, decodeToUnicodeCodePoints); this.fileName = fileName; } }