target = $target; } /** * Determines if the transition is an "epsilon" transition. The default * implementation returns `false`. * * @return bool `true` if traversing this transition in the ATN does not * consume an input symbol; otherwise, `false` if traversing * this transition consumes (matches) an input symbol. */ public function isEpsilon() : bool { return false; } public function label() : ?IntervalSet { return null; } abstract public function getSerializationType() : int; abstract public function matches(int $symbol, int $minVocabSymbol, int $maxVocabSymbol) : bool; abstract public function __toString() : string; }