antlr4-runtime
Version:
JavaScript runtime for ANTLR4
31 lines (26 loc) • 948 B
JavaScript
/* 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 IntervalSet from "../misc/IntervalSet.js";
import Transition from "./Transition.js";
export default class RangeTransition extends Transition {
constructor(target, start, stop) {
super(target);
this.serializationType = Transition.RANGE;
this.start = start;
this.stop = stop;
this.label = this.makeLabel();
}
makeLabel() {
const s = new IntervalSet();
s.addRange(this.start, this.stop);
return s;
}
matches(symbol, minVocabSymbol, maxVocabSymbol) {
return symbol >= this.start && symbol <= this.stop;
}
toString() {
return "'" + String.fromCharCode(this.start) + "'..'" + String.fromCharCode(this.stop) + "'";
}
}