summaryrefslogtreecommitdiffstats
path: root/contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2023-12-04 15:32:14 +0300
committerrobot-piglet <[email protected]>2023-12-05 01:22:50 +0300
commitc21ed9eedf73010bc81342518177dfdfb0d56bd7 (patch)
tree72f8fde4463080cfe5a38eb0babc051cfe32c51e /contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h
parentec1311bf2e8cc231723b8b5e484ca576663a1309 (diff)
Intermediate changes
Diffstat (limited to 'contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h')
-rw-r--r--contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h200
1 files changed, 0 insertions, 200 deletions
diff --git a/contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h b/contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h
deleted file mode 100644
index 21614712410..00000000000
--- a/contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* 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.
- */
-
-#pragma once
-
-#include "TokenStream.h"
-
-namespace antlr4 {
-
- /**
- * This implementation of {@link TokenStream} loads tokens from a
- * {@link TokenSource} on-demand, and places the tokens in a buffer to provide
- * access to any previous token by index.
- *
- * <p>
- * This token stream ignores the value of {@link Token#getChannel}. If your
- * parser requires the token stream filter tokens to only those on a particular
- * channel, such as {@link Token#DEFAULT_CHANNEL} or
- * {@link Token#HIDDEN_CHANNEL}, use a filtering token stream such a
- * {@link CommonTokenStream}.</p>
- */
- class ANTLR4CPP_PUBLIC BufferedTokenStream : public TokenStream {
- public:
- BufferedTokenStream(TokenSource *tokenSource);
- BufferedTokenStream(const BufferedTokenStream& other) = delete;
-
- BufferedTokenStream& operator = (const BufferedTokenStream& other) = delete;
-
- virtual TokenSource* getTokenSource() const override;
- virtual size_t index() override;
- virtual ssize_t mark() override;
-
- virtual void release(ssize_t marker) override;
- virtual void reset();
- virtual void seek(size_t index) override;
-
- virtual size_t size() override;
- virtual void consume() override;
-
- virtual Token* get(size_t i) const override;
-
- /// Get all tokens from start..stop inclusively.
- virtual std::vector<Token *> get(size_t start, size_t stop);
-
- virtual size_t LA(ssize_t i) override;
- virtual Token* LT(ssize_t k) override;
-
- /// Reset this token stream by setting its token source.
- virtual void setTokenSource(TokenSource *tokenSource);
- virtual std::vector<Token *> getTokens();
- virtual std::vector<Token *> getTokens(size_t start, size_t stop);
-
- /// <summary>
- /// Given a start and stop index, return a List of all tokens in
- /// the token type BitSet. Return null if no tokens were found. This
- /// method looks at both on and off channel tokens.
- /// </summary>
- virtual std::vector<Token *> getTokens(size_t start, size_t stop, const std::vector<size_t> &types);
- virtual std::vector<Token *> getTokens(size_t start, size_t stop, size_t ttype);
-
- /// Collect all tokens on specified channel to the right of
- /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL or
- /// EOF. If channel is -1, find any non default channel token.
- virtual std::vector<Token *> getHiddenTokensToRight(size_t tokenIndex, ssize_t channel);
-
- /// <summary>
- /// Collect all hidden tokens (any off-default channel) to the right of
- /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL
- /// or EOF.
- /// </summary>
- virtual std::vector<Token *> getHiddenTokensToRight(size_t tokenIndex);
-
- /// <summary>
- /// Collect all tokens on specified channel to the left of
- /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL.
- /// If channel is -1, find any non default channel token.
- /// </summary>
- virtual std::vector<Token *> getHiddenTokensToLeft(size_t tokenIndex, ssize_t channel);
-
- /// <summary>
- /// Collect all hidden tokens (any off-default channel) to the left of
- /// the current token up until we see a token on DEFAULT_TOKEN_CHANNEL.
- /// </summary>
- virtual std::vector<Token *> getHiddenTokensToLeft(size_t tokenIndex);
-
- virtual std::string getSourceName() const override;
- virtual std::string getText() override;
- virtual std::string getText(const misc::Interval &interval) override;
- virtual std::string getText(RuleContext *ctx) override;
- virtual std::string getText(Token *start, Token *stop) override;
-
- /// Get all tokens from lexer until EOF.
- virtual void fill();
-
- protected:
- /**
- * The {@link TokenSource} from which tokens for this stream are fetched.
- */
- TokenSource *_tokenSource;
-
- /**
- * A collection of all tokens fetched from the token source. The list is
- * considered a complete view of the input once {@link #fetchedEOF} is set
- * to {@code true}.
- */
- std::vector<std::unique_ptr<Token>> _tokens;
-
- /**
- * The index into {@link #tokens} of the current token (next token to
- * {@link #consume}). {@link #tokens}{@code [}{@link #p}{@code ]} should be
- * {@link #LT LT(1)}.
- *
- * <p>This field is set to -1 when the stream is first constructed or when
- * {@link #setTokenSource} is called, indicating that the first token has
- * not yet been fetched from the token source. For additional information,
- * see the documentation of {@link IntStream} for a description of
- * Initializing Methods.</p>
- */
- // ml: since -1 requires to make this member signed for just this single aspect we use a member _needSetup instead.
- // Use bool isInitialized() to find out if this stream has started reading.
- size_t _p;
-
- /**
- * Indicates whether the {@link Token#EOF} token has been fetched from
- * {@link #tokenSource} and added to {@link #tokens}. This field improves
- * performance for the following cases:
- *
- * <ul>
- * <li>{@link #consume}: The lookahead check in {@link #consume} to prevent
- * consuming the EOF symbol is optimized by checking the values of
- * {@link #fetchedEOF} and {@link #p} instead of calling {@link #LA}.</li>
- * <li>{@link #fetch}: The check to prevent adding multiple EOF symbols into
- * {@link #tokens} is trivial with this field.</li>
- * <ul>
- */
- bool _fetchedEOF;
-
- /// <summary>
- /// Make sure index {@code i} in tokens has a token.
- /// </summary>
- /// <returns> {@code true} if a token is located at index {@code i}, otherwise
- /// {@code false}. </returns>
- /// <seealso cref= #get(int i) </seealso>
- virtual bool sync(size_t i);
-
- /// <summary>
- /// Add {@code n} elements to buffer.
- /// </summary>
- /// <returns> The actual number of elements added to the buffer. </returns>
- virtual size_t fetch(size_t n);
-
- virtual Token* LB(size_t k);
-
- /// Allowed derived classes to modify the behavior of operations which change
- /// the current stream position by adjusting the target token index of a seek
- /// operation. The default implementation simply returns {@code i}. If an
- /// exception is thrown in this method, the current stream index should not be
- /// changed.
- /// <p/>
- /// For example, <seealso cref="CommonTokenStream"/> overrides this method to ensure that
- /// the seek target is always an on-channel token.
- ///
- /// <param name="i"> The target token index. </param>
- /// <returns> The adjusted target token index. </returns>
- virtual ssize_t adjustSeekIndex(size_t i);
- void lazyInit();
- virtual void setup();
-
- /**
- * Given a starting index, return the index of the next token on channel.
- * Return {@code i} if {@code tokens[i]} is on channel. Return the index of
- * the EOF token if there are no tokens on channel between {@code i} and
- * EOF.
- */
- virtual ssize_t nextTokenOnChannel(size_t i, size_t channel);
-
- /**
- * Given a starting index, return the index of the previous token on
- * channel. Return {@code i} if {@code tokens[i]} is on channel. Return -1
- * if there are no tokens on channel between {@code i} and 0.
- *
- * <p>
- * If {@code i} specifies an index at or after the EOF token, the EOF token
- * index is returned. This is due to the fact that the EOF token is treated
- * as though it were on every channel.</p>
- */
- virtual ssize_t previousTokenOnChannel(size_t i, size_t channel);
-
- virtual std::vector<Token *> filterForChannel(size_t from, size_t to, ssize_t channel);
-
- bool isInitialized() const;
-
- private:
- bool _needSetup;
- void InitializeInstanceFields();
- };
-
-} // namespace antlr4