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

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

/*
 * 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.
 */
package org.antlr.v4.kotlinruntime

/**
 * This class extends [ParserRuleContext] by allowing the value of
 * [.getRuleIndex] 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
 * [.getRuleIndex] 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.
 */
class InterpreterRuleContext : ParserRuleContext {

    constructor() {}

    /**
     * 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.
     */
    constructor(parent: ParserRuleContext,
                invokingStateNumber: Int,
                ruleIndex: Int) : super(parent, invokingStateNumber) {
        this.ruleIndex = ruleIndex
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy