1*37748cd8SNickeau<?php 2*37748cd8SNickeau 3*37748cd8SNickeaudeclare(strict_types=1); 4*37748cd8SNickeau 5*37748cd8SNickeaunamespace Antlr\Antlr4\Runtime\Atn\Transitions; 6*37748cd8SNickeau 7*37748cd8SNickeauuse Antlr\Antlr4\Runtime\Atn\States\ATNState; 8*37748cd8SNickeau 9*37748cd8SNickeaufinal class EpsilonTransition extends Transition 10*37748cd8SNickeau{ 11*37748cd8SNickeau /** @var int */ 12*37748cd8SNickeau private $outermostPrecedenceReturn; 13*37748cd8SNickeau 14*37748cd8SNickeau public function __construct(ATNState $target, int $outermostPrecedenceReturn = -1) 15*37748cd8SNickeau { 16*37748cd8SNickeau parent::__construct($target); 17*37748cd8SNickeau 18*37748cd8SNickeau $this->outermostPrecedenceReturn = $outermostPrecedenceReturn; 19*37748cd8SNickeau } 20*37748cd8SNickeau 21*37748cd8SNickeau /** 22*37748cd8SNickeau * @return int The rule index of a precedence rule for which this transition 23*37748cd8SNickeau * is returning from, where the precedence value is 0; otherwise, 24*37748cd8SNickeau * -1. 25*37748cd8SNickeau * 26*37748cd8SNickeau * @see ATNConfig::isPrecedenceFilterSuppressed() 27*37748cd8SNickeau * @see ParserATNSimulator::applyPrecedenceFilter() 28*37748cd8SNickeau */ 29*37748cd8SNickeau public function getOutermostPrecedenceReturn() : int 30*37748cd8SNickeau { 31*37748cd8SNickeau return $this->outermostPrecedenceReturn; 32*37748cd8SNickeau } 33*37748cd8SNickeau 34*37748cd8SNickeau public function matches(int $symbol, int $minVocabSymbol, int $maxVocabSymbol) : bool 35*37748cd8SNickeau { 36*37748cd8SNickeau return false; 37*37748cd8SNickeau } 38*37748cd8SNickeau 39*37748cd8SNickeau /** 40*37748cd8SNickeau * {@inheritdoc} 41*37748cd8SNickeau */ 42*37748cd8SNickeau public function isEpsilon() : bool 43*37748cd8SNickeau { 44*37748cd8SNickeau return true; 45*37748cd8SNickeau } 46*37748cd8SNickeau 47*37748cd8SNickeau public function getSerializationType() : int 48*37748cd8SNickeau { 49*37748cd8SNickeau return self::EPSILON; 50*37748cd8SNickeau } 51*37748cd8SNickeau 52*37748cd8SNickeau public function equals(object $other) : bool 53*37748cd8SNickeau { 54*37748cd8SNickeau if ($this === $other) { 55*37748cd8SNickeau return true; 56*37748cd8SNickeau } 57*37748cd8SNickeau 58*37748cd8SNickeau return $other instanceof self 59*37748cd8SNickeau && $this->outermostPrecedenceReturn === $other->outermostPrecedenceReturn 60*37748cd8SNickeau && $this->target->equals($other->target); 61*37748cd8SNickeau } 62*37748cd8SNickeau 63*37748cd8SNickeau public function __toString() : string 64*37748cd8SNickeau { 65*37748cd8SNickeau return 'epsilon'; 66*37748cd8SNickeau } 67*37748cd8SNickeau} 68