UNPKG

antlr4ts

Version:

ANTLR 4 runtime for JavaScript written in Typescript

174 lines 5.02 kB
"use strict"; /*! * Copyright 2016 The ANTLR Project. All rights reserved. * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.toCharArray = exports.toMap = exports.equals = exports.join = exports.escapeWhitespace = void 0; function escapeWhitespace(s, escapeSpaces) { return escapeSpaces ? s.replace(/ /, "\u00B7") : s .replace(/\t/, "\\t") .replace(/\n/, "\\n") .replace(/\r/, "\\r"); } exports.escapeWhitespace = escapeWhitespace; // Seriously: why isn't this built in to java? ugh! function join(collection, separator) { let buf = ""; let first = true; for (let current of collection) { if (first) { first = false; } else { buf += separator; } buf += current; } return buf; } exports.join = join; function equals(x, y) { if (x === y) { return true; } if (x === undefined || y === undefined) { return false; } return x.equals(y); } exports.equals = equals; // export function numNonnull(data: any[]): number { // let n: number = 0; // if ( data == null ) return n; // for (let o of data) { // if ( o!=null ) n++; // } // return n; // } // export function removeAllElements<T>(data: Collection<T>, value: T): void { // if ( data==null ) return; // while ( data.contains(value) ) data.remove(value); // } // export function writeFile(@NotNull file: File, @NotNull content: Uint8Array): void { // let fos: FileOutputStream = new FileOutputStream(file); // try { // fos.write(content); // } finally { // fos.close(); // } // } // export function writeFile(@NotNull fileName: string, @NotNull content: string): void { // writeFile(fileName, content, null); // } // export function writeFile(@NotNull fileName: string, @NotNull content: string, @Nullable encoding: string): void { // let f: File = new File(fileName); // let fos: FileOutputStream = new FileOutputStream(f); // let osw: OutputStreamWriter; // if (encoding != null) { // osw = new OutputStreamWriter(fos, encoding); // } // else { // osw = new OutputStreamWriter(fos); // } // try { // osw.write(content); // } // finally { // osw.close(); // } // } // @NotNull // export function readFile(@NotNull fileName: string): char[] { // return readFile(fileName, null); // } // @NotNull // export function readFile(@NotNull fileName: string, @Nullable encoding: string): char[] { // let f: File = new File(fileName); // let size: number = (int)f.length(); // let isr: InputStreamReader; // let fis: FileInputStream = new FileInputStream(fileName); // if ( encoding!=null ) { // isr = new InputStreamReader(fis, encoding); // } // else { // isr = new InputStreamReader(fis); // } // let data: char[] = null; // try { // data = new char[size]; // let n: number = isr.read(data); // if (n < data.length) { // data = Arrays.copyOf(data, n); // } // } // finally { // isr.close(); // } // return data; // } // export function removeAll<T>(@NotNull predicate: List<T> list,@NotNull Predicate<? super T>): void { // let j: number = 0; // for (let i = 0; i < list.size; i++) { // let item: T = list.get(i); // if (!predicate.eval(item)) { // if (j != i) { // list.set(j, item); // } // j++; // } // } // if (j < list.size) { // list.subList(j, list.size).clear(); // } // } // export function removeAll<T>(@NotNull predicate: Iterable<T> iterable,@NotNull Predicate<? super T>): void { // if (iterable instanceof List<?>) { // removeAll((List<T>)iterable, predicate); // return; // } // for (Iterator<T> iterator = iterable.iterator(); iterator.hasNext(); ) { // let item: T = iterator.next(); // if (predicate.eval(item)) { // iterator.remove(); // } // } // } /** Convert array of strings to string&rarr;index map. Useful for * converting rulenames to name&rarr;ruleindex map. */ function toMap(keys) { let m = new Map(); for (let i = 0; i < keys.length; i++) { m.set(keys[i], i); } return m; } exports.toMap = toMap; function toCharArray(str) { if (typeof str === "string") { let result = new Uint16Array(str.length); for (let i = 0; i < str.length; i++) { result[i] = str.charCodeAt(i); } return result; } else { return str.toCharArray(); } } exports.toCharArray = toCharArray; // /** // * @since 4.5 // */ // @NotNull // export function toSet(@NotNull bits: BitSet): IntervalSet { // let s: IntervalSet = new IntervalSet(); // let i: number = bits.nextSetBit(0); // while ( i >= 0 ) { // s.add(i); // i = bits.nextSetBit(i+1); // } // return s; // } //# sourceMappingURL=Utils.js.map