diff options
| author | robot-piglet <[email protected]> | 2023-12-04 15:32:14 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2023-12-05 01:22:50 +0300 |
| commit | c21ed9eedf73010bc81342518177dfdfb0d56bd7 (patch) | |
| tree | 72f8fde4463080cfe5a38eb0babc051cfe32c51e /contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h | |
| parent | ec1311bf2e8cc231723b8b5e484ca576663a1309 (diff) | |
Intermediate changes
Diffstat (limited to 'contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h')
| -rw-r--r-- | contrib/libs/antlr4_cpp_runtime/src/BufferedTokenStream.h | 200 |
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 |
