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*37748cd8SNickeauuse Antlr\Antlr4\Runtime\Atn\States\RuleStartState; 9*37748cd8SNickeau 10*37748cd8SNickeaufinal class RuleTransition extends Transition 11*37748cd8SNickeau{ 12*37748cd8SNickeau /** 13*37748cd8SNickeau * Ptr to the rule definition object for this rule ref. 14*37748cd8SNickeau * No Rule object at runtime. 15*37748cd8SNickeau * 16*37748cd8SNickeau * @var int 17*37748cd8SNickeau */ 18*37748cd8SNickeau public $ruleIndex; 19*37748cd8SNickeau 20*37748cd8SNickeau /** @var int */ 21*37748cd8SNickeau public $precedence; 22*37748cd8SNickeau 23*37748cd8SNickeau /** 24*37748cd8SNickeau * What node to begin computations following ref to rule 25*37748cd8SNickeau * 26*37748cd8SNickeau * @var ATNState 27*37748cd8SNickeau */ 28*37748cd8SNickeau public $followState; 29*37748cd8SNickeau 30*37748cd8SNickeau public function __construct(RuleStartState $ruleStart, int $ruleIndex, int $precedence, ATNState $followState) 31*37748cd8SNickeau { 32*37748cd8SNickeau parent::__construct($ruleStart); 33*37748cd8SNickeau 34*37748cd8SNickeau $this->ruleIndex = $ruleIndex; 35*37748cd8SNickeau $this->precedence = $precedence; 36*37748cd8SNickeau $this->followState = $followState; 37*37748cd8SNickeau } 38*37748cd8SNickeau 39*37748cd8SNickeau public function matches(int $symbol, int $minVocabSymbol, int $maxVocabSymbol) : bool 40*37748cd8SNickeau { 41*37748cd8SNickeau return false; 42*37748cd8SNickeau } 43*37748cd8SNickeau 44*37748cd8SNickeau /** 45*37748cd8SNickeau * {@inheritdoc} 46*37748cd8SNickeau */ 47*37748cd8SNickeau public function isEpsilon() : bool 48*37748cd8SNickeau { 49*37748cd8SNickeau return true; 50*37748cd8SNickeau } 51*37748cd8SNickeau 52*37748cd8SNickeau public function getSerializationType() : int 53*37748cd8SNickeau { 54*37748cd8SNickeau return self::RULE; 55*37748cd8SNickeau } 56*37748cd8SNickeau 57*37748cd8SNickeau public function equals(object $other) : bool 58*37748cd8SNickeau { 59*37748cd8SNickeau if ($this === $other) { 60*37748cd8SNickeau return true; 61*37748cd8SNickeau } 62*37748cd8SNickeau 63*37748cd8SNickeau return $other instanceof self 64*37748cd8SNickeau && $this->ruleIndex === $other->ruleIndex 65*37748cd8SNickeau && $this->precedence === $other->precedence 66*37748cd8SNickeau && $this->target->equals($other->target); 67*37748cd8SNickeau } 68*37748cd8SNickeau 69*37748cd8SNickeau public function __toString() : string 70*37748cd8SNickeau { 71*37748cd8SNickeau return \sprintf('rule_%d:%d,%s', $this->ruleIndex, $this->precedence, $this->followState); 72*37748cd8SNickeau } 73*37748cd8SNickeau} 74