All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.org.antlr.v4.kotlinruntime.InterpreterRuleContext.kt Maven / Gradle / Ivy

The newest version!
// Copyright 2017-present Strumenta and contributors, licensed under Apache 2.0.
// Copyright 2024-present Strumenta and contributors, licensed under BSD 3-Clause.
package org.antlr.v4.kotlinruntime

/**
 * This class extends [ParserRuleContext] by allowing the value of
 * [ruleIndex] to be explicitly set for the context.
 *
 * [ParserRuleContext] does not include field storage for the rule index
 * since the context classes created by the code generator override the
 * [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.
 */
public class InterpreterRuleContext : ParserRuleContext {
  override val ruleIndex: Int

  public constructor() {
    ruleIndex = -1
  }

  /**
   * Constructs a new [InterpreterRuleContext] with the specified
   * parent, invoking state, and rule index.
   *
   * @param parent The parent context
   * @param invokingStateNumber The invoking state number
   * @param ruleIndex The rule index for the current context
   */
  public constructor(
    parent: ParserRuleContext?,
    invokingStateNumber: Int,
    ruleIndex: Int,
  ) : super(parent, invokingStateNumber) {
    this.ruleIndex = ruleIndex
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy