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

commonMain.org.antlr.v4.kotlinruntime.CharStream.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

import org.antlr.v4.kotlinruntime.misc.Interval

/** A source of characters for an ANTLR lexer.  */
interface CharStream : IntStream {
    /**
     * This method returns the text for a range of characters within this input
     * stream. This method is guaranteed to not throw an exception if the
     * specified `interval` lies entirely within a marked range. For more
     * information about marked ranges, see [IntStream.mark].
     *
     * @param interval an interval within the stream
     * @return the text of the specified interval
     *
     * @throws NullPointerException if `interval` is `null`
     * @throws IllegalArgumentException if `interval.a < 0`, or if
     * `interval.b < interval.a - 1`, or if `interval.b` lies at or
     * past the end of the stream
     * @throws UnsupportedOperationException if the stream does not support
     * getting the text of the specified interval
     */
    fun getText(interval: Interval): String

    companion object {
        val EOF = IntStream.EOF
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy