Repository URL to install this package:
|
Version:
2023.12.1 ▾
|
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
* Use of this file is governed by the BSD 3-clause license that
* can be found in the LICENSE.txt file in the project root.
*/
using Antlr4.Runtime.Atn;
using Antlr4.Runtime.Misc;
using Antlr4.Runtime.Sharpen;
namespace Antlr4.Runtime.Atn
{
/// <summary>A transition containing a set of values.</summary>
/// <remarks>A transition containing a set of values.</remarks>
public class SetTransition : Transition
{
[NotNull]
public readonly IntervalSet set;
public SetTransition(ATNState target, IntervalSet set)
: base(target)
{
// TODO (sam): should we really allow null here?
if (set == null)
{
set = IntervalSet.Of(TokenConstants.InvalidType);
}
this.set = set;
}
public override Antlr4.Runtime.Atn.TransitionType TransitionType
{
get
{
return Antlr4.Runtime.Atn.TransitionType.SET;
}
}
public override IntervalSet Label
{
get
{
return set;
}
}
public override bool Matches(int symbol, int minVocabSymbol, int maxVocabSymbol)
{
return set.Contains(symbol);
}
[return: NotNull]
public override string ToString()
{
return set.ToString();
}
}
}