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;
using Antlr4.Runtime.Sharpen;
namespace Antlr4.Runtime
{
/// <summary>
/// This class extends
/// <see cref="ParserRuleContext"/>
/// by allowing the value of
/// <see cref="RuleIndex()"/>
/// to be explicitly set for the context.
/// <p>
/// <see cref="ParserRuleContext"/>
/// does not include field storage for the rule index
/// since the context classes created by the code generator override the
/// <see cref="RuleIndex()"/>
/// method to return the correct value for that context.
/// Since the parser interpreter does not use the context classes generated for a
/// parser, this class (with slightly more memory overhead per node) is used to
/// provide equivalent functionality.</p>
/// </summary>
public class InterpreterRuleContext : ParserRuleContext
{
/// <summary>
/// This is the backing field for
/// <see cref="RuleIndex()"/>
/// .
/// </summary>
private readonly int ruleIndex;
/// <summary>
/// Constructs a new
/// <see cref="InterpreterRuleContext"/>
/// with the specified
/// parent, invoking state, and rule index.
/// </summary>
/// <param name="parent">The parent context.</param>
/// <param name="invokingStateNumber">The invoking state number.</param>
/// <param name="ruleIndex">The rule index for the current context.</param>
public InterpreterRuleContext(ParserRuleContext parent, int invokingStateNumber, int ruleIndex)
: base(parent, invokingStateNumber)
{
this.ruleIndex = ruleIndex;
}
public override int RuleIndex
{
get
{
return ruleIndex;
}
}
}
}