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\SemanticContexts\PrecedencePredicate; 8*37748cd8SNickeauuse Antlr\Antlr4\Runtime\Atn\States\ATNState; 9*37748cd8SNickeau 10*37748cd8SNickeauclass PrecedencePredicateTransition extends AbstractPredicateTransition 11*37748cd8SNickeau{ 12*37748cd8SNickeau /** @var int */ 13*37748cd8SNickeau public $precedence; 14*37748cd8SNickeau 15*37748cd8SNickeau public function __construct(ATNState $target, int $precedence) 16*37748cd8SNickeau { 17*37748cd8SNickeau parent::__construct($target); 18*37748cd8SNickeau 19*37748cd8SNickeau $this->precedence = $precedence; 20*37748cd8SNickeau } 21*37748cd8SNickeau 22*37748cd8SNickeau public function matches(int $symbol, int $minVocabSymbol, int $maxVocabSymbol) : bool 23*37748cd8SNickeau { 24*37748cd8SNickeau return false; 25*37748cd8SNickeau } 26*37748cd8SNickeau 27*37748cd8SNickeau public function getPredicate() : PrecedencePredicate 28*37748cd8SNickeau { 29*37748cd8SNickeau return new PrecedencePredicate($this->precedence); 30*37748cd8SNickeau } 31*37748cd8SNickeau 32*37748cd8SNickeau /** 33*37748cd8SNickeau * {@inheritdoc} 34*37748cd8SNickeau */ 35*37748cd8SNickeau public function isEpsilon() : bool 36*37748cd8SNickeau { 37*37748cd8SNickeau return true; 38*37748cd8SNickeau } 39*37748cd8SNickeau 40*37748cd8SNickeau public function getSerializationType() : int 41*37748cd8SNickeau { 42*37748cd8SNickeau return self::PRECEDENCE; 43*37748cd8SNickeau } 44*37748cd8SNickeau 45*37748cd8SNickeau public function equals(object $other) : bool 46*37748cd8SNickeau { 47*37748cd8SNickeau if ($this === $other) { 48*37748cd8SNickeau return true; 49*37748cd8SNickeau } 50*37748cd8SNickeau 51*37748cd8SNickeau return $other instanceof self 52*37748cd8SNickeau && $this->precedence === $other->precedence 53*37748cd8SNickeau && $this->target->equals($other->target); 54*37748cd8SNickeau } 55*37748cd8SNickeau 56*37748cd8SNickeau public function __toString() : string 57*37748cd8SNickeau { 58*37748cd8SNickeau return $this->precedence . ' >= _p'; 59*37748cd8SNickeau } 60*37748cd8SNickeau} 61