/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/libs/antlr4_cpp_runtime/src/CommonTokenFactory.h
74 строки
3 KB
Anton Myagkov
Update ydb version to 24.4 (#4579)
07 фев 2026, 11:59
Не верифицирован
07 фев 2026, 11:59
2c21cae
Код
Авторство
О чём код?
/* 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 "TokenFactory.h" namespace antlr4 { /** * This default implementation of {@link TokenFactory} creates * {@link CommonToken} objects. */ class ANTLR4CPP_PUBLIC CommonTokenFactory : public TokenFactory<CommonToken> { public: /** * The default {@link CommonTokenFactory} instance. * * <p> * This token factory does not explicitly copy token text when constructing * tokens.</p> */ static const std::unique_ptr<TokenFactory<CommonToken>> DEFAULT; protected: /** * Indicates whether {@link CommonToken#setText} should be called after * constructing tokens to explicitly set the text. This is useful for cases * where the input stream might not be able to provide arbitrary substrings * of text from the input after the lexer creates a token (e.g. the * implementation of {@link CharStream#getText} in * {@link UnbufferedCharStream} throws an * {@link UnsupportedOperationException}). Explicitly setting the token text * allows {@link Token#getText} to be called at any time regardless of the * input stream implementation. * * <p> * The default value is {@code false} to avoid the performance and memory * overhead of copying text for every token unless explicitly requested.</p> */ const bool copyText; public: /** * Constructs a {@link CommonTokenFactory} with the specified value for * {@link #copyText}. * * <p> * When {@code copyText} is {@code false}, the {@link #DEFAULT} instance * should be used instead of constructing a new instance.</p> * * @param copyText The value for {@link #copyText}. */ CommonTokenFactory(bool copyText); /** * Constructs a {@link CommonTokenFactory} with {@link #copyText} set to * {@code false}. * * <p> * The {@link #DEFAULT} instance should be used instead of calling this * directly.</p> */ CommonTokenFactory(); virtual std::unique_ptr<CommonToken> create(std::pair<TokenSource*, CharStream*> source, size_t type, const std::string &text, size_t channel, size_t start, size_t stop, size_t line, size_t charPositionInLine) override; virtual std::unique_ptr<CommonToken> create(size_t type, const std::string &text) override; }; } // namespace antlr4