UNPKG

antlr4-runtime

Version:

JavaScript runtime for ANTLR4

29 lines (23 loc) 777 B
/* Copyright (c) 2012-2022 The ANTLR Project Contributors. All rights reserved. * Use is 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 HashMap from "../misc/HashMap.js"; export default class DoubleDict { constructor(defaultMapCtor) { this.defaultMapCtor = defaultMapCtor || HashMap; this.cacheMap = new this.defaultMapCtor(); } get(a, b) { const d = this.cacheMap.get(a) || null; return d === null ? null : (d.get(b) || null); } set(a, b, o) { let d = this.cacheMap.get(a) || null; if (d === null) { d = new this.defaultMapCtor(); this.cacheMap.set(a, d); } d.set(b, o); } }