diff --git a/third_party/antlr4/BUILD.gn b/third_party/antlr4/BUILD.gn deleted file mode 100644 index 65e2a78eb4..0000000000 --- a/third_party/antlr4/BUILD.gn +++ /dev/null @@ -1,342 +0,0 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -config("antlr-compatibility") { - if (!is_clang && !is_win) { - cflags = [ - # Avoid warnings in generated Antlr code - "-Wno-unused-but-set-variable", - ] - } - if (is_aix) { - cflags += [ "-fdollars-in-identifiers" ] - } -} - -source_set("antlr4") { - defines = [ "ANTLR4CPP_STATIC" ] - - include_dirs = [ "runtime/Cpp/runtime/src" ] - - sources = [ - "runtime/Cpp/runtime/src/ANTLRErrorListener.cpp", - "runtime/Cpp/runtime/src/ANTLRErrorListener.h", - "runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp", - "runtime/Cpp/runtime/src/ANTLRErrorStrategy.h", - "runtime/Cpp/runtime/src/ANTLRFileStream.cpp", - "runtime/Cpp/runtime/src/ANTLRFileStream.h", - "runtime/Cpp/runtime/src/ANTLRInputStream.cpp", - "runtime/Cpp/runtime/src/ANTLRInputStream.h", - "runtime/Cpp/runtime/src/BailErrorStrategy.cpp", - "runtime/Cpp/runtime/src/BailErrorStrategy.h", - "runtime/Cpp/runtime/src/BaseErrorListener.cpp", - "runtime/Cpp/runtime/src/BaseErrorListener.h", - "runtime/Cpp/runtime/src/BufferedTokenStream.cpp", - "runtime/Cpp/runtime/src/BufferedTokenStream.h", - "runtime/Cpp/runtime/src/CharStream.cpp", - "runtime/Cpp/runtime/src/CharStream.h", - "runtime/Cpp/runtime/src/CommonToken.cpp", - "runtime/Cpp/runtime/src/CommonToken.h", - "runtime/Cpp/runtime/src/CommonTokenFactory.cpp", - "runtime/Cpp/runtime/src/CommonTokenFactory.h", - "runtime/Cpp/runtime/src/CommonTokenStream.cpp", - "runtime/Cpp/runtime/src/CommonTokenStream.h", - "runtime/Cpp/runtime/src/ConsoleErrorListener.cpp", - "runtime/Cpp/runtime/src/ConsoleErrorListener.h", - "runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp", - "runtime/Cpp/runtime/src/DefaultErrorStrategy.h", - "runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp", - "runtime/Cpp/runtime/src/DiagnosticErrorListener.h", - "runtime/Cpp/runtime/src/Exceptions.cpp", - "runtime/Cpp/runtime/src/Exceptions.h", - "runtime/Cpp/runtime/src/FailedPredicateException.cpp", - "runtime/Cpp/runtime/src/FailedPredicateException.h", - "runtime/Cpp/runtime/src/InputMismatchException.cpp", - "runtime/Cpp/runtime/src/InputMismatchException.h", - "runtime/Cpp/runtime/src/IntStream.cpp", - "runtime/Cpp/runtime/src/IntStream.h", - "runtime/Cpp/runtime/src/InterpreterRuleContext.cpp", - "runtime/Cpp/runtime/src/InterpreterRuleContext.h", - "runtime/Cpp/runtime/src/Lexer.cpp", - "runtime/Cpp/runtime/src/Lexer.h", - "runtime/Cpp/runtime/src/LexerInterpreter.cpp", - "runtime/Cpp/runtime/src/LexerInterpreter.h", - "runtime/Cpp/runtime/src/LexerNoViableAltException.cpp", - "runtime/Cpp/runtime/src/LexerNoViableAltException.h", - "runtime/Cpp/runtime/src/ListTokenSource.cpp", - "runtime/Cpp/runtime/src/ListTokenSource.h", - "runtime/Cpp/runtime/src/NoViableAltException.cpp", - "runtime/Cpp/runtime/src/NoViableAltException.h", - "runtime/Cpp/runtime/src/Parser.cpp", - "runtime/Cpp/runtime/src/Parser.h", - "runtime/Cpp/runtime/src/ParserInterpreter.cpp", - "runtime/Cpp/runtime/src/ParserInterpreter.h", - "runtime/Cpp/runtime/src/ParserRuleContext.cpp", - "runtime/Cpp/runtime/src/ParserRuleContext.h", - "runtime/Cpp/runtime/src/ProxyErrorListener.cpp", - "runtime/Cpp/runtime/src/ProxyErrorListener.h", - "runtime/Cpp/runtime/src/RecognitionException.cpp", - "runtime/Cpp/runtime/src/RecognitionException.h", - "runtime/Cpp/runtime/src/Recognizer.cpp", - "runtime/Cpp/runtime/src/Recognizer.h", - "runtime/Cpp/runtime/src/RuleContext.cpp", - "runtime/Cpp/runtime/src/RuleContext.h", - "runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp", - "runtime/Cpp/runtime/src/RuleContextWithAltNum.h", - "runtime/Cpp/runtime/src/RuntimeMetaData.cpp", - "runtime/Cpp/runtime/src/RuntimeMetaData.h", - "runtime/Cpp/runtime/src/Token.cpp", - "runtime/Cpp/runtime/src/Token.h", - "runtime/Cpp/runtime/src/TokenFactory.h", - "runtime/Cpp/runtime/src/TokenSource.cpp", - "runtime/Cpp/runtime/src/TokenSource.h", - "runtime/Cpp/runtime/src/TokenStream.cpp", - "runtime/Cpp/runtime/src/TokenStream.h", - "runtime/Cpp/runtime/src/TokenStreamRewriter.cpp", - "runtime/Cpp/runtime/src/TokenStreamRewriter.h", - "runtime/Cpp/runtime/src/UnbufferedCharStream.cpp", - "runtime/Cpp/runtime/src/UnbufferedCharStream.h", - "runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp", - "runtime/Cpp/runtime/src/UnbufferedTokenStream.h", - "runtime/Cpp/runtime/src/Vocabulary.cpp", - "runtime/Cpp/runtime/src/Vocabulary.h", - "runtime/Cpp/runtime/src/WritableToken.cpp", - "runtime/Cpp/runtime/src/WritableToken.h", - "runtime/Cpp/runtime/src/antlr4-common.h", - "runtime/Cpp/runtime/src/antlr4-runtime.h", - "runtime/Cpp/runtime/src/atn/ATN.cpp", - "runtime/Cpp/runtime/src/atn/ATN.h", - "runtime/Cpp/runtime/src/atn/ATNConfig.cpp", - "runtime/Cpp/runtime/src/atn/ATNConfig.h", - "runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp", - "runtime/Cpp/runtime/src/atn/ATNConfigSet.h", - "runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp", - "runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h", - "runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp", - "runtime/Cpp/runtime/src/atn/ATNDeserializer.h", - "runtime/Cpp/runtime/src/atn/ATNSerializer.cpp", - "runtime/Cpp/runtime/src/atn/ATNSerializer.h", - "runtime/Cpp/runtime/src/atn/ATNSimulator.cpp", - "runtime/Cpp/runtime/src/atn/ATNSimulator.h", - "runtime/Cpp/runtime/src/atn/ATNState.cpp", - "runtime/Cpp/runtime/src/atn/ATNState.h", - "runtime/Cpp/runtime/src/atn/ATNType.h", - "runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp", - "runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h", - "runtime/Cpp/runtime/src/atn/ActionTransition.cpp", - "runtime/Cpp/runtime/src/atn/ActionTransition.h", - "runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp", - "runtime/Cpp/runtime/src/atn/AmbiguityInfo.h", - "runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp", - "runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h", - "runtime/Cpp/runtime/src/atn/AtomTransition.cpp", - "runtime/Cpp/runtime/src/atn/AtomTransition.h", - "runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp", - "runtime/Cpp/runtime/src/atn/BasicBlockStartState.h", - "runtime/Cpp/runtime/src/atn/BasicState.cpp", - "runtime/Cpp/runtime/src/atn/BasicState.h", - "runtime/Cpp/runtime/src/atn/BlockEndState.cpp", - "runtime/Cpp/runtime/src/atn/BlockEndState.h", - "runtime/Cpp/runtime/src/atn/BlockStartState.cpp", - "runtime/Cpp/runtime/src/atn/BlockStartState.h", - "runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp", - "runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h", - "runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp", - "runtime/Cpp/runtime/src/atn/DecisionEventInfo.h", - "runtime/Cpp/runtime/src/atn/DecisionInfo.cpp", - "runtime/Cpp/runtime/src/atn/DecisionInfo.h", - "runtime/Cpp/runtime/src/atn/DecisionState.cpp", - "runtime/Cpp/runtime/src/atn/DecisionState.h", - "runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp", - "runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h", - "runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp", - "runtime/Cpp/runtime/src/atn/EpsilonTransition.h", - "runtime/Cpp/runtime/src/atn/ErrorInfo.cpp", - "runtime/Cpp/runtime/src/atn/ErrorInfo.h", - "runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp", - "runtime/Cpp/runtime/src/atn/LL1Analyzer.h", - "runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp", - "runtime/Cpp/runtime/src/atn/LexerATNConfig.h", - "runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp", - "runtime/Cpp/runtime/src/atn/LexerATNSimulator.h", - "runtime/Cpp/runtime/src/atn/LexerAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerAction.h", - "runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp", - "runtime/Cpp/runtime/src/atn/LexerActionExecutor.h", - "runtime/Cpp/runtime/src/atn/LexerActionType.h", - "runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerChannelAction.h", - "runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerCustomAction.h", - "runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h", - "runtime/Cpp/runtime/src/atn/LexerModeAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerModeAction.h", - "runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerMoreAction.h", - "runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerPopModeAction.h", - "runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerPushModeAction.h", - "runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerSkipAction.h", - "runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp", - "runtime/Cpp/runtime/src/atn/LexerTypeAction.h", - "runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp", - "runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h", - "runtime/Cpp/runtime/src/atn/LoopEndState.cpp", - "runtime/Cpp/runtime/src/atn/LoopEndState.h", - "runtime/Cpp/runtime/src/atn/NotSetTransition.cpp", - "runtime/Cpp/runtime/src/atn/NotSetTransition.h", - "runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp", - "runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h", - "runtime/Cpp/runtime/src/atn/ParseInfo.cpp", - "runtime/Cpp/runtime/src/atn/ParseInfo.h", - "runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp", - "runtime/Cpp/runtime/src/atn/ParserATNSimulator.h", - "runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp", - "runtime/Cpp/runtime/src/atn/PlusBlockStartState.h", - "runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp", - "runtime/Cpp/runtime/src/atn/PlusLoopbackState.h", - "runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp", - "runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h", - "runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp", - "runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h", - "runtime/Cpp/runtime/src/atn/PredicateTransition.cpp", - "runtime/Cpp/runtime/src/atn/PredicateTransition.h", - "runtime/Cpp/runtime/src/atn/PredictionContext.cpp", - "runtime/Cpp/runtime/src/atn/PredictionContext.h", - "runtime/Cpp/runtime/src/atn/PredictionMode.cpp", - "runtime/Cpp/runtime/src/atn/PredictionMode.h", - "runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp", - "runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h", - "runtime/Cpp/runtime/src/atn/RangeTransition.cpp", - "runtime/Cpp/runtime/src/atn/RangeTransition.h", - "runtime/Cpp/runtime/src/atn/RuleStartState.cpp", - "runtime/Cpp/runtime/src/atn/RuleStartState.h", - "runtime/Cpp/runtime/src/atn/RuleStopState.cpp", - "runtime/Cpp/runtime/src/atn/RuleStopState.h", - "runtime/Cpp/runtime/src/atn/RuleTransition.cpp", - "runtime/Cpp/runtime/src/atn/RuleTransition.h", - "runtime/Cpp/runtime/src/atn/SemanticContext.cpp", - "runtime/Cpp/runtime/src/atn/SemanticContext.h", - "runtime/Cpp/runtime/src/atn/SetTransition.cpp", - "runtime/Cpp/runtime/src/atn/SetTransition.h", - "runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp", - "runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h", - "runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp", - "runtime/Cpp/runtime/src/atn/StarBlockStartState.h", - "runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp", - "runtime/Cpp/runtime/src/atn/StarLoopEntryState.h", - "runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp", - "runtime/Cpp/runtime/src/atn/StarLoopbackState.h", - "runtime/Cpp/runtime/src/atn/TokensStartState.cpp", - "runtime/Cpp/runtime/src/atn/TokensStartState.h", - "runtime/Cpp/runtime/src/atn/Transition.cpp", - "runtime/Cpp/runtime/src/atn/Transition.h", - "runtime/Cpp/runtime/src/atn/WildcardTransition.cpp", - "runtime/Cpp/runtime/src/atn/WildcardTransition.h", - "runtime/Cpp/runtime/src/dfa/DFA.cpp", - "runtime/Cpp/runtime/src/dfa/DFA.h", - "runtime/Cpp/runtime/src/dfa/DFASerializer.cpp", - "runtime/Cpp/runtime/src/dfa/DFASerializer.h", - "runtime/Cpp/runtime/src/dfa/DFAState.cpp", - "runtime/Cpp/runtime/src/dfa/DFAState.h", - "runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp", - "runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h", - "runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp", - "runtime/Cpp/runtime/src/misc/InterpreterDataReader.h", - "runtime/Cpp/runtime/src/misc/Interval.cpp", - "runtime/Cpp/runtime/src/misc/Interval.h", - "runtime/Cpp/runtime/src/misc/IntervalSet.cpp", - "runtime/Cpp/runtime/src/misc/IntervalSet.h", - "runtime/Cpp/runtime/src/misc/MurmurHash.cpp", - "runtime/Cpp/runtime/src/misc/MurmurHash.h", - "runtime/Cpp/runtime/src/misc/Predicate.cpp", - "runtime/Cpp/runtime/src/misc/Predicate.h", - "runtime/Cpp/runtime/src/support/Any.cpp", - "runtime/Cpp/runtime/src/support/Any.h", - "runtime/Cpp/runtime/src/support/Arrays.cpp", - "runtime/Cpp/runtime/src/support/Arrays.h", - "runtime/Cpp/runtime/src/support/BitSet.h", - "runtime/Cpp/runtime/src/support/CPPUtils.cpp", - "runtime/Cpp/runtime/src/support/CPPUtils.h", - "runtime/Cpp/runtime/src/support/Declarations.h", - "runtime/Cpp/runtime/src/support/StringUtils.cpp", - "runtime/Cpp/runtime/src/support/StringUtils.h", - "runtime/Cpp/runtime/src/support/guid.cpp", - "runtime/Cpp/runtime/src/support/guid.h", - "runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h", - "runtime/Cpp/runtime/src/tree/ErrorNode.cpp", - "runtime/Cpp/runtime/src/tree/ErrorNode.h", - "runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp", - "runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h", - "runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp", - "runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h", - "runtime/Cpp/runtime/src/tree/ParseTree.cpp", - "runtime/Cpp/runtime/src/tree/ParseTree.h", - "runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp", - "runtime/Cpp/runtime/src/tree/ParseTreeListener.h", - "runtime/Cpp/runtime/src/tree/ParseTreeProperty.h", - "runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp", - "runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h", - "runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp", - "runtime/Cpp/runtime/src/tree/ParseTreeWalker.h", - "runtime/Cpp/runtime/src/tree/TerminalNode.cpp", - "runtime/Cpp/runtime/src/tree/TerminalNode.h", - "runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp", - "runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h", - "runtime/Cpp/runtime/src/tree/Trees.cpp", - "runtime/Cpp/runtime/src/tree/Trees.h", - "runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp", - "runtime/Cpp/runtime/src/tree/pattern/Chunk.h", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp", - "runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h", - "runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp", - "runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h", - "runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp", - "runtime/Cpp/runtime/src/tree/pattern/TagChunk.h", - "runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp", - "runtime/Cpp/runtime/src/tree/pattern/TextChunk.h", - "runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp", - "runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h", - "runtime/Cpp/runtime/src/tree/xpath/XPath.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPath.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h", - "runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp", - "runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h", - ] - - configs -= [ - "//build/config/compiler:chromium_code", - "//build/config/compiler:no_rtti", - "//build/config/compiler:no_exceptions", - ] - - configs += [ - "//build/config/compiler:no_chromium_code", - "//build/config/compiler:rtti", - "//build/config/compiler:exceptions", - ":antlr-compatibility", - ] -} diff --git a/third_party/antlr4/LICENSE.txt b/third_party/antlr4/LICENSE.txt deleted file mode 100644 index 2042d1bda6..0000000000 --- a/third_party/antlr4/LICENSE.txt +++ /dev/null @@ -1,52 +0,0 @@ -[The "BSD 3-clause license"] -Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -===== - -MIT License for codepointat.js from https://git.io/codepointat -MIT License for fromcodepoint.js from https://git.io/vDW1m - -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/third_party/antlr4/runtime/Cpp/README.md b/third_party/antlr4/runtime/Cpp/README.md deleted file mode 100644 index fbcfadd51e..0000000000 --- a/third_party/antlr4/runtime/Cpp/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# C++ target for ANTLR 4 - -This folder contains the C++ runtime support for ANTLR. See [the canonical antlr4 repository](https://github.com/antlr/antlr4) for in depth detail about how to use ANTLR 4. - -## Authors and major contributors - -ANTLR 4 is the result of substantial effort of the following people: - -* [Terence Parr](http://www.cs.usfca.edu/~parrt/), parrt@cs.usfca.edu - ANTLR project lead and supreme dictator for life - [University of San Francisco](http://www.usfca.edu/) -* [Sam Harwell](http://tunnelvisionlabs.com/) - Tool co-author, Java and C# target) - -The C++ target has been the work of the following people: - -* Dan McLaughlin, dan.mclaughlin@gmail.com (initial port, got code to compile) -* David Sisson, dsisson@google.com (initial port, made the runtime C++ tests runnable) -* [Mike Lischke](www.soft-gems.net), mike@lischke-online.de (brought the initial port to a working library, made most runtime tests passing) - -## Other contributors - -* Marcin Szalowicz, mszalowicz@mailplus.pl (cmake build setup) -* Tim O'Callaghan, timo@linux.com (additional superbuild cmake pattern script) - -## Project Status - -* Building on OS X, Windows, and Linux -* No errors and warnings -* Library linking -* Some unit tests in the OSX project, for important base classes with almost 100% code coverage. -* All memory allocations checked -* Simple command line demo application working on all supported platforms. -* All runtime tests pass. - -### Build + Usage Notes - -The minimum C++ version to compile the ANTLR C++ runtime with is C++11. The supplied projects can built the runtime either as static or dynamic library, as both 32bit and 64bit arch. The OSX project contains a target for iOS and can also be built using cmake (instead of XCode). - -Include the antlr4-runtime.h umbrella header in your target application to get everything needed to use the library. - -If you are compiling with cmake, the minimum version required is cmake 2.8. - -#### Compiling on Windows -Simply open the VS solution (VS 2013+) and build it. - -#### Compiling on OSX -Either open the included XCode project and build that or use the cmake compilation as described for linux. - -#### Compiling on Linux -- cd /runtime/Cpp (this is where this readme is located) -- mkdir build && mkdir run && cd build -- cmake .. -DANTLR_JAR_LOCATION=full/path/to/antlr4-4.5.4-SNAPSHOT.jar -DWITH_DEMO=True -- make -- DESTDIR=/runtime/Cpp/run make install - -If you don't want to build the demo then simply run cmake without parameters. -There is another cmake script available in the subfolder cmake/ for those who prefer the superbuild cmake pattern. - diff --git a/third_party/antlr4/runtime/Cpp/VERSION b/third_party/antlr4/runtime/Cpp/VERSION deleted file mode 100644 index 7c66fca579..0000000000 --- a/third_party/antlr4/runtime/Cpp/VERSION +++ /dev/null @@ -1 +0,0 @@ -4.7.1 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp deleted file mode 100644 index b8efcdd71a..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +++ /dev/null @@ -1,8 +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. - */ - -#include "ANTLRErrorListener.h" - -antlr4::ANTLRErrorListener::~ANTLRErrorListener() {} diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h deleted file mode 100644 index 5fa6f04608..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorListener.h +++ /dev/null @@ -1,171 +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 "RecognitionException.h" - -namespace antlrcpp { -class BitSet; -} - -namespace antlr4 { - -/// How to emit recognition errors (an interface in Java). -class ANTLR4CPP_PUBLIC ANTLRErrorListener { - public: - virtual ~ANTLRErrorListener(); - - /// - /// Upon syntax error, notify any interested parties. This is not how to - /// recover from errors or compute error messages. specifies how to recover from syntax errors - /// and how to compute error messages. This listener's job is simply to emit a - /// computed message, though it has enough information to create its own - /// message in many cases.

The is - /// non-null for all syntax errors except when we discover mismatched token - /// errors that we can recover from in-line, without returning from the - /// surrounding rule (via the single token insertion and deletion mechanism). - ///

- /// - /// What parser got the error. From this - /// object, you can access the context as well - /// as the input stream. - /// - /// The offending token in the input token - /// stream, unless recognizer is a lexer (then it's null). If - /// no viable alternative error, {@code e} has token at which we - /// started production for the decision. - /// - /// The line number in the input where the error occurred. - /// The character - /// position within that line where the error occurred. The message to emit. - /// The exception generated by the parser that led to - /// the reporting of an error. It is null in the case where - /// the parser was able to recover in line without exiting the - /// surrounding rule. - virtual void syntaxError(Recognizer* recognizer, Token* offendingSymbol, - size_t line, size_t charPositionInLine, - const std::string& msg, std::exception_ptr e) = 0; - - /** - * This method is called by the parser when a full-context prediction - * results in an ambiguity. - * - *

Each full-context prediction which does not result in a syntax error - * will call either {@link #reportContextSensitivity} or - * {@link #reportAmbiguity}.

- * - *

When {@code ambigAlts} is not null, it contains the set of potentially - * viable alternatives identified by the prediction algorithm. When - * {@code ambigAlts} is null, use {@link ATNConfigSet#getAlts} to obtain the - * represented alternatives from the {@code configs} argument.

- * - *

When {@code exact} is {@code true}, all of the potentially - * viable alternatives are truly viable, i.e. this is reporting an exact - * ambiguity. When {@code exact} is {@code false}, at least two of - * the potentially viable alternatives are viable for the current input, but - * the prediction algorithm terminated as soon as it determined that at - * least the minimum potentially viable alternative is truly - * viable.

- * - *

When the {@link PredictionMode#LL_EXACT_AMBIG_DETECTION} prediction - * mode is used, the parser is required to identify exact ambiguities so - * {@code exact} will always be {@code true}.

- * - *

This method is not used by lexers.

- * - * @param recognizer the parser instance - * @param dfa the DFA for the current decision - * @param startIndex the input index where the decision started - * @param stopIndex the input input where the ambiguity was identified - * @param exact {@code true} if the ambiguity is exactly known, otherwise - * {@code false}. This is always {@code true} when - * {@link PredictionMode#LL_EXACT_AMBIG_DETECTION} is used. - * @param ambigAlts the potentially ambiguous alternatives, or {@code null} - * to indicate that the potentially ambiguous alternatives are the complete - * set of represented alternatives in {@code configs} - * @param configs the ATN configuration set where the ambiguity was - * identified - */ - virtual void reportAmbiguity(Parser* recognizer, const dfa::DFA& dfa, - size_t startIndex, size_t stopIndex, bool exact, - const antlrcpp::BitSet& ambigAlts, - atn::ATNConfigSet* configs) = 0; - - /** - * This method is called when an SLL conflict occurs and the parser is about - * to use the full context information to make an LL decision. - * - *

If one or more configurations in {@code configs} contains a semantic - * predicate, the predicates are evaluated before this method is called. The - * subset of alternatives which are still viable after predicates are - * evaluated is reported in {@code conflictingAlts}.

- * - *

This method is not used by lexers.

- * - * @param recognizer the parser instance - * @param dfa the DFA for the current decision - * @param startIndex the input index where the decision started - * @param stopIndex the input index where the SLL conflict occurred - * @param conflictingAlts The specific conflicting alternatives. If this is - * {@code null}, the conflicting alternatives are all alternatives - * represented in {@code configs}. At the moment, conflictingAlts is non-null - * (for the reference implementation, but Sam's optimized version can see this - * as null). - * @param configs the ATN configuration set where the SLL conflict was - * detected - */ - virtual void reportAttemptingFullContext( - Parser* recognizer, const dfa::DFA& dfa, size_t startIndex, - size_t stopIndex, const antlrcpp::BitSet& conflictingAlts, - atn::ATNConfigSet* configs) = 0; - - /** - * This method is called by the parser when a full-context prediction has a - * unique result. - * - *

Each full-context prediction which does not result in a syntax error - * will call either {@link #reportContextSensitivity} or - * {@link #reportAmbiguity}.

- * - *

For prediction implementations that only evaluate full-context - * predictions when an SLL conflict is found (including the default - * {@link ParserATNSimulator} implementation), this method reports cases - * where SLL conflicts were resolved to unique full-context predictions, - * i.e. the decision was context-sensitive. This report does not necessarily - * indicate a problem, and it may appear even in completely unambiguous - * grammars.

- * - *

{@code configs} may have more than one represented alternative if the - * full-context prediction algorithm does not evaluate predicates before - * beginning the full-context prediction. In all cases, the final prediction - * is passed as the {@code prediction} argument.

- * - *

Note that the definition of "context sensitivity" in this method - * differs from the concept in {@link DecisionInfo#contextSensitivities}. - * This method reports all instances where an SLL conflict occurred but LL - * parsing produced a unique result, whether or not that unique result - * matches the minimum alternative in the SLL conflicting set.

- * - *

This method is not used by lexers.

- * - * @param recognizer the parser instance - * @param dfa the DFA for the current decision - * @param startIndex the input index where the decision started - * @param stopIndex the input index where the context sensitivity was - * finally determined - * @param prediction the unambiguous result of the full-context prediction - * @param configs the ATN configuration set where the unambiguous prediction - * was determined - */ - virtual void reportContextSensitivity(Parser* recognizer, const dfa::DFA& dfa, - size_t startIndex, size_t stopIndex, - size_t prediction, - atn::ATNConfigSet* configs) = 0; -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp deleted file mode 100644 index f76444e020..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +++ /dev/null @@ -1,8 +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. - */ - -#include "ANTLRErrorStrategy.h" - -antlr4::ANTLRErrorStrategy::~ANTLRErrorStrategy() {} diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h deleted file mode 100644 index 7204a5c85f..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +++ /dev/null @@ -1,121 +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 "Token.h" - -namespace antlr4 { - -/// -/// The interface for defining strategies to deal with syntax errors encountered -/// during a parse by ANTLR-generated parsers. We distinguish between three -/// different kinds of errors: -/// -///
    -///
  • The parser could not figure out which path to take in the ATN (none of -/// the available alternatives could possibly match)
  • -///
  • The current input does not match what we were looking for
  • -///
  • A predicate evaluated to false
  • -///
-/// -/// Implementations of this interface report syntax errors by calling -/// . -///

-/// TO_DO: what to do about lexers -///

-class ANTLR4CPP_PUBLIC ANTLRErrorStrategy { - public: - /// - /// Reset the error handler state for the specified {@code recognizer}. - /// the parser instance - virtual ~ANTLRErrorStrategy(); - - virtual void reset(Parser* recognizer) = 0; - - /** - * This method is called when an unexpected symbol is encountered during an - * inline match operation, such as {@link Parser#match}. If the error - * strategy successfully recovers from the match failure, this method - * returns the {@link Token} instance which should be treated as the - * successful result of the match. - * - *

This method handles the consumption of any tokens - the caller should - * not call {@link Parser#consume} after a successful recovery.

- * - *

Note that the calling code will not report an error if this method - * returns successfully. The error strategy implementation is responsible - * for calling {@link Parser#notifyErrorListeners} as appropriate.

- * - * @param recognizer the parser instance - * @throws RecognitionException if the error strategy was not able to - * recover from the unexpected input symbol - */ - virtual Token* recoverInline(Parser* recognizer) = 0; - - /// - /// This method is called to recover from exception {@code e}. This method is - /// called after by the default exception - /// handler generated for a rule method. - /// - /// - /// the parser instance - /// the recognition exception to recover from - /// if the error strategy could not - /// recover from the recognition exception - virtual void recover(Parser* recognizer, std::exception_ptr e) = 0; - - /// - /// This method provides the error handler with an opportunity to handle - /// syntactic or semantic errors in the input stream before they result in a - /// . - ///

- /// The generated code currently contains calls to - /// after entering the decision state of a closure block ({@code (...)*} or - /// {@code (...)+}). - ///

- /// For an implementation based on Jim Idle's "magic sync" mechanism, see - /// . - ///

- /// - /// the parser instance - /// if an error is detected by the - /// error strategy but cannot be automatically recovered at the current state - /// in the parsing process - virtual void sync(Parser* recognizer) = 0; - - /// - /// Tests whether or not {@code recognizer} is in the process of recovering - /// from an error. In error recovery mode, - /// adds symbols to the parse tree by calling - /// {@link Parser#createErrorNode(ParserRuleContext, Token)} then - /// {@link ParserRuleContext#addErrorNode(ErrorNode)} instead of - /// {@link Parser#createTerminalNode(ParserRuleContext, Token)}. - /// - /// the parser instance - /// {@code true} if the parser is currently recovering from a parse - /// error, otherwise {@code false} - virtual bool inErrorRecoveryMode(Parser* recognizer) = 0; - - /// - /// This method is called by when the parser successfully matches an input - /// symbol. - /// - /// the parser instance - virtual void reportMatch(Parser* recognizer) = 0; - - /// - /// Report any kind of . This method is - /// called by the default exception handler generated for a rule method. - /// - /// the parser instance - /// the recognition exception to report - virtual void reportError(Parser* recognizer, - const RecognitionException& e) = 0; -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp deleted file mode 100644 index a0376470b3..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +++ /dev/null @@ -1,32 +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. - */ - -#include "support/StringUtils.h" - -#include "ANTLRFileStream.h" - -using namespace antlr4; - -ANTLRFileStream::ANTLRFileStream(const std::string& fileName) { - _fileName = fileName; - loadFromFile(fileName); -} - -void ANTLRFileStream::loadFromFile(const std::string& fileName) { - _fileName = fileName; - if (_fileName.empty()) { - return; - } - -#ifdef _MSC_VER - std::ifstream stream(antlrcpp::s2ws(fileName), std::ios::binary); -#else - std::ifstream stream(fileName, std::ios::binary); -#endif - - ANTLRInputStream::load(stream); -} - -std::string ANTLRFileStream::getSourceName() const { return _fileName; } diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h deleted file mode 100644 index 3c92247f03..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRFileStream.h +++ /dev/null @@ -1,28 +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 "ANTLRInputStream.h" - -namespace antlr4 { - -/// This is an ANTLRInputStream that is loaded from a file all at once -/// when you construct the object (or call load()). -// TODO: this class needs testing. -class ANTLR4CPP_PUBLIC ANTLRFileStream : public ANTLRInputStream { - protected: - std::string _fileName; // UTF-8 encoded file name. - - public: - // Assumes a file name encoded in UTF-8 and file content in the same encoding - // (with or w/o BOM). - ANTLRFileStream(const std::string& fileName); - - virtual void loadFromFile(const std::string& fileName); - virtual std::string getSourceName() const override; -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp deleted file mode 100644 index 8eecd823cd..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +++ /dev/null @@ -1,143 +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. - */ - -#include "Exceptions.h" -#include "IntStream.h" -#include "misc/Interval.h" - -#include "support/CPPUtils.h" -#include "support/StringUtils.h" - -#include "ANTLRInputStream.h" - -using namespace antlr4; -using namespace antlrcpp; - -using misc::Interval; - -ANTLRInputStream::ANTLRInputStream(const std::string& input) { - InitializeInstanceFields(); - load(input); -} - -ANTLRInputStream::ANTLRInputStream(const char data_[], - size_t numberOfActualCharsInArray) - : ANTLRInputStream(std::string(data_, numberOfActualCharsInArray)) {} - -ANTLRInputStream::ANTLRInputStream(std::istream& stream) { - InitializeInstanceFields(); - load(stream); -} - -void ANTLRInputStream::load(const std::string& input) { - // Remove the UTF-8 BOM if present. - const char bom[4] = "\xef\xbb\xbf"; - if (input.compare(0, 3, bom, 3) == 0) - _data = - antlrcpp::utf8_to_utf32(input.data() + 3, input.data() + input.size()); - else - _data = antlrcpp::utf8_to_utf32(input.data(), input.data() + input.size()); - p = 0; -} - -void ANTLRInputStream::load(std::istream& stream) { - if (!stream.good() || stream.eof()) // No fail, bad or EOF. - return; - - _data.clear(); - - std::string s((std::istreambuf_iterator(stream)), - std::istreambuf_iterator()); - load(s); -} - -void ANTLRInputStream::reset() { p = 0; } - -void ANTLRInputStream::consume() { - if (p >= _data.size()) { - assert(LA(1) == IntStream::EOF); - throw IllegalStateException("cannot consume EOF"); - } - - if (p < _data.size()) { - p++; - } -} - -size_t ANTLRInputStream::LA(ssize_t i) { - if (i == 0) { - return 0; // undefined - } - - ssize_t position = static_cast(p); - if (i < 0) { - i++; // e.g., translate LA(-1) to use offset i=0; then _data[p+0-1] - if ((position + i - 1) < 0) { - return IntStream::EOF; // invalid; no char before first char - } - } - - if ((position + i - 1) >= static_cast(_data.size())) { - return IntStream::EOF; - } - - return _data[static_cast((position + i - 1))]; -} - -size_t ANTLRInputStream::LT(ssize_t i) { return LA(i); } - -size_t ANTLRInputStream::index() { return p; } - -size_t ANTLRInputStream::size() { return _data.size(); } - -// Mark/release do nothing. We have entire buffer. -ssize_t ANTLRInputStream::mark() { return -1; } - -void ANTLRInputStream::release(ssize_t /* marker */) {} - -void ANTLRInputStream::seek(size_t index) { - if (index <= p) { - p = index; // just jump; don't update stream state (line, ...) - return; - } - // seek forward, consume until p hits index or n (whichever comes first) - index = std::min(index, _data.size()); - while (p < index) { - consume(); - } -} - -std::string ANTLRInputStream::getText(const Interval& interval) { - if (interval.a < 0 || interval.b < 0) { - return ""; - } - - size_t start = static_cast(interval.a); - size_t stop = static_cast(interval.b); - - if (stop >= _data.size()) { - stop = _data.size() - 1; - } - - size_t count = stop - start + 1; - if (start >= _data.size()) { - return ""; - } - - return antlrcpp::utf32_to_utf8(_data.substr(start, count)); -} - -std::string ANTLRInputStream::getSourceName() const { - if (name.empty()) { - return IntStream::UNKNOWN_SOURCE_NAME; - } - return name; -} - -std::string ANTLRInputStream::toString() const { - return antlrcpp::utf32_to_utf8(_data); -} - -void ANTLRInputStream::InitializeInstanceFields() { p = 0; } diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h b/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h deleted file mode 100644 index 4a7af5152a..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/ANTLRInputStream.h +++ /dev/null @@ -1,69 +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 "CharStream.h" - -namespace antlr4 { - -// Vacuum all input from a stream and then treat it -// like a string. Can also pass in a string or char[] to use. -// Input is expected to be encoded in UTF-8 and converted to UTF-32 internally. -class ANTLR4CPP_PUBLIC ANTLRInputStream : public CharStream { - protected: - /// The data being scanned. - // UTF-32 - UTF32String _data; - - /// 0..n-1 index into string of next char - size_t p; - - public: - /// What is name or source of this char stream? - std::string name; - - ANTLRInputStream(const std::string& input = ""); - ANTLRInputStream(const char data_[], size_t numberOfActualCharsInArray); - ANTLRInputStream(std::istream& stream); - - virtual void load(const std::string& input); - virtual void load(std::istream& stream); - - /// Reset the stream so that it's in the same state it was - /// when the object was created *except* the data array is not - /// touched. - virtual void reset(); - virtual void consume() override; - virtual size_t LA(ssize_t i) override; - virtual size_t LT(ssize_t i); - - /// - /// Return the current input symbol index 0..n where n indicates the - /// last symbol has been read. The index is the index of char to - /// be returned from LA(1). - /// - virtual size_t index() override; - virtual size_t size() override; - - /// - /// mark/release do nothing; we have entire buffer - virtual ssize_t mark() override; - virtual void release(ssize_t marker) override; - - /// - /// consume() ahead until p==index; can't just set p=index as we must - /// update line and charPositionInLine. If we seek backwards, just set p - /// - virtual void seek(size_t index) override; - virtual std::string getText(const misc::Interval& interval) override; - virtual std::string getSourceName() const override; - virtual std::string toString() const override; - - private: - void InitializeInstanceFields(); -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp deleted file mode 100644 index bc341d7ba1..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +++ /dev/null @@ -1,59 +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. - */ - -#include "Exceptions.h" -#include "InputMismatchException.h" -#include "Parser.h" -#include "ParserRuleContext.h" - -#include "BailErrorStrategy.h" - -using namespace antlr4; - -void BailErrorStrategy::recover(Parser* recognizer, std::exception_ptr e) { - ParserRuleContext* context = recognizer->getContext(); - do { - context->exception = e; - if (context->parent == nullptr) break; - context = static_cast(context->parent); - } while (true); - - try { - std::rethrow_exception( - e); // Throw the exception to be able to catch and rethrow nested. -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026 - } catch (RecognitionException& inner) { - throw ParseCancellationException(inner.what()); -#else - } catch (RecognitionException& /*inner*/) { - std::throw_with_nested(ParseCancellationException()); -#endif - } -} - -Token* BailErrorStrategy::recoverInline(Parser* recognizer) { - InputMismatchException e(recognizer); - std::exception_ptr exception = std::make_exception_ptr(e); - - ParserRuleContext* context = recognizer->getContext(); - do { - context->exception = exception; - if (context->parent == nullptr) break; - context = static_cast(context->parent); - } while (true); - - try { - throw e; -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER < 190023026 - } catch (InputMismatchException& inner) { - throw ParseCancellationException(inner.what()); -#else - } catch (InputMismatchException& /*inner*/) { - std::throw_with_nested(ParseCancellationException()); -#endif - } -} - -void BailErrorStrategy::sync(Parser* /*recognizer*/) {} diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h b/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h deleted file mode 100644 index a21189cd60..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BailErrorStrategy.h +++ /dev/null @@ -1,60 +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 "DefaultErrorStrategy.h" - -namespace antlr4 { - -/** - * This implementation of {@link ANTLRErrorStrategy} responds to syntax errors - * by immediately canceling the parse operation with a - * {@link ParseCancellationException}. The implementation ensures that the - * {@link ParserRuleContext#exception} field is set for all parse tree nodes - * that were not completed prior to encountering the error. - * - *

- * This error strategy is useful in the following scenarios.

- * - *
    - *
  • Two-stage parsing: This error strategy allows the first - * stage of two-stage parsing to immediately terminate if an error is - * encountered, and immediately fall back to the second stage. In addition to - * avoiding wasted work by attempting to recover from errors here, the empty - * implementation of {@link BailErrorStrategy#sync} improves the performance of - * the first stage.
  • - *
  • Silent validation: When syntax errors are not being - * reported or logged, and the parse result is simply ignored if errors occur, - * the {@link BailErrorStrategy} avoids wasting work on recovering from errors - * when the result will be ignored either way.
  • - *
- * - *

- * {@code myparser.setErrorHandler(new BailErrorStrategy());}

- * - * @see Parser#setErrorHandler(ANTLRErrorStrategy) - */ -class ANTLR4CPP_PUBLIC BailErrorStrategy : public DefaultErrorStrategy { - /// - /// Instead of recovering from exception {@code e}, re-throw it wrapped - /// in a so it is not caught by - /// the rule function catches. Use to - /// get the original . - /// - public: - virtual void recover(Parser* recognizer, std::exception_ptr e) override; - - /// Make sure we don't attempt to recover inline; if the parser - /// successfully recovers, it won't throw an exception. - virtual Token* recoverInline(Parser* recognizer) override; - - /// - /// Make sure we don't attempt to recover from problems in subrules. - /// - virtual void sync(Parser* recognizer) override; -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp deleted file mode 100644 index 66bd1a1444..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.cpp +++ /dev/null @@ -1,32 +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. - */ - -#include "BaseErrorListener.h" -#include "RecognitionException.h" - -using namespace antlr4; - -void BaseErrorListener::syntaxError(Recognizer* /*recognizer*/, - Token* /*offendingSymbol*/, size_t /*line*/, - size_t /*charPositionInLine*/, - const std::string& /*msg*/, - std::exception_ptr /*e*/) {} - -void BaseErrorListener::reportAmbiguity(Parser* /*recognizer*/, - const dfa::DFA& /*dfa*/, - size_t /*startIndex*/, - size_t /*stopIndex*/, bool /*exact*/, - const antlrcpp::BitSet& /*ambigAlts*/, - atn::ATNConfigSet* /*configs*/) {} - -void BaseErrorListener::reportAttemptingFullContext( - Parser* /*recognizer*/, const dfa::DFA& /*dfa*/, size_t /*startIndex*/, - size_t /*stopIndex*/, const antlrcpp::BitSet& /*conflictingAlts*/, - atn::ATNConfigSet* /*configs*/) {} - -void BaseErrorListener::reportContextSensitivity( - Parser* /*recognizer*/, const dfa::DFA& /*dfa*/, size_t /*startIndex*/, - size_t /*stopIndex*/, size_t /*prediction*/, - atn::ATNConfigSet* /*configs*/) {} diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h b/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h deleted file mode 100644 index 60934524f4..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BaseErrorListener.h +++ /dev/null @@ -1,43 +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 "ANTLRErrorListener.h" - -namespace antlrcpp { -class BitSet; -} - -namespace antlr4 { - -/** - * Provides an empty default implementation of {@link ANTLRErrorListener}. The - * default implementation of each method does nothing, but can be overridden as - * necessary. - */ -class ANTLR4CPP_PUBLIC BaseErrorListener : public ANTLRErrorListener { - virtual void syntaxError(Recognizer* recognizer, Token* offendingSymbol, - size_t line, size_t charPositionInLine, - const std::string& msg, - std::exception_ptr e) override; - - virtual void reportAmbiguity(Parser* recognizer, const dfa::DFA& dfa, - size_t startIndex, size_t stopIndex, bool exact, - const antlrcpp::BitSet& ambigAlts, - atn::ATNConfigSet* configs) override; - - virtual void reportAttemptingFullContext( - Parser* recognizer, const dfa::DFA& dfa, size_t startIndex, - size_t stopIndex, const antlrcpp::BitSet& conflictingAlts, - atn::ATNConfigSet* configs) override; - - virtual void reportContextSensitivity(Parser* recognizer, const dfa::DFA& dfa, - size_t startIndex, size_t stopIndex, - size_t prediction, - atn::ATNConfigSet* configs) override; -}; - -} // namespace antlr4 diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp b/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp deleted file mode 100644 index 479da94404..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +++ /dev/null @@ -1,407 +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. - */ - -#include "Exceptions.h" -#include "Lexer.h" -#include "RuleContext.h" -#include "WritableToken.h" -#include "misc/Interval.h" -#include "support/CPPUtils.h" - -#include "BufferedTokenStream.h" - -using namespace antlr4; -using namespace antlrcpp; - -BufferedTokenStream::BufferedTokenStream(TokenSource* tokenSource) - : _tokenSource(tokenSource) { - InitializeInstanceFields(); -} - -TokenSource* BufferedTokenStream::getTokenSource() const { - return _tokenSource; -} - -size_t BufferedTokenStream::index() { return _p; } - -ssize_t BufferedTokenStream::mark() { return 0; } - -void BufferedTokenStream::release(ssize_t /*marker*/) { - // no resources to release -} - -void BufferedTokenStream::reset() { seek(0); } - -void BufferedTokenStream::seek(size_t index) { - lazyInit(); - _p = adjustSeekIndex(index); -} - -size_t BufferedTokenStream::size() { return _tokens.size(); } - -void BufferedTokenStream::consume() { - bool skipEofCheck = false; - if (!_needSetup) { - if (_fetchedEOF) { - // the last token in tokens is EOF. skip check if p indexes any - // fetched token except the last. - skipEofCheck = _p < _tokens.size() - 1; - } else { - // no EOF token in tokens. skip check if p indexes a fetched token. - skipEofCheck = _p < _tokens.size(); - } - } else { - // not yet initialized - skipEofCheck = false; - } - - if (!skipEofCheck && LA(1) == Token::EOF) { - throw IllegalStateException("cannot consume EOF"); - } - - if (sync(_p + 1)) { - _p = adjustSeekIndex(_p + 1); - } -} - -bool BufferedTokenStream::sync(size_t i) { - if (i + 1 < _tokens.size()) return true; - size_t n = i - _tokens.size() + 1; // how many more elements we need? - - if (n > 0) { - size_t fetched = fetch(n); - return fetched >= n; - } - - return true; -} - -size_t BufferedTokenStream::fetch(size_t n) { - if (_fetchedEOF) { - return 0; - } - - size_t i = 0; - while (i < n) { - std::unique_ptr t(_tokenSource->nextToken()); - - if (is(t.get())) { - (static_cast(t.get()))->setTokenIndex(_tokens.size()); - } - - _tokens.push_back(std::move(t)); - ++i; - - if (_tokens.back()->getType() == Token::EOF) { - _fetchedEOF = true; - break; - } - } - - return i; -} - -Token* BufferedTokenStream::get(size_t i) const { - if (i >= _tokens.size()) { - throw IndexOutOfBoundsException( - std::string("token index ") + std::to_string(i) + - std::string(" out of range 0..") + std::to_string(_tokens.size() - 1)); - } - return _tokens[i].get(); -} - -std::vector BufferedTokenStream::get(size_t start, size_t stop) { - std::vector subset; - - lazyInit(); - - if (_tokens.empty()) { - return subset; - } - - if (stop >= _tokens.size()) { - stop = _tokens.size() - 1; - } - for (size_t i = start; i <= stop; i++) { - Token* t = _tokens[i].get(); - if (t->getType() == Token::EOF) { - break; - } - subset.push_back(t); - } - return subset; -} - -size_t BufferedTokenStream::LA(ssize_t i) { return LT(i)->getType(); } - -Token* BufferedTokenStream::LB(size_t k) { - if (k > _p) { - return nullptr; - } - return _tokens[_p - k].get(); -} - -Token* BufferedTokenStream::LT(ssize_t k) { - lazyInit(); - if (k == 0) { - return nullptr; - } - if (k < 0) { - return LB(-k); - } - - size_t i = _p + k - 1; - sync(i); - if (i >= _tokens.size()) { // return EOF token - // EOF must be last token - return _tokens.back().get(); - } - - return _tokens[i].get(); -} - -ssize_t BufferedTokenStream::adjustSeekIndex(size_t i) { return i; } - -void BufferedTokenStream::lazyInit() { - if (_needSetup) { - setup(); - } -} - -void BufferedTokenStream::setup() { - _needSetup = false; - sync(0); - _p = adjustSeekIndex(0); -} - -void BufferedTokenStream::setTokenSource(TokenSource* tokenSource) { - _tokenSource = tokenSource; - _tokens.clear(); - _fetchedEOF = false; - _needSetup = true; -} - -std::vector BufferedTokenStream::getTokens() { - std::vector result; - for (auto& t : _tokens) result.push_back(t.get()); - return result; -} - -std::vector BufferedTokenStream::getTokens(size_t start, size_t stop) { - return getTokens(start, stop, std::vector()); -} - -std::vector BufferedTokenStream::getTokens( - size_t start, size_t stop, const std::vector& types) { - lazyInit(); - if (stop >= _tokens.size() || start >= _tokens.size()) { - throw IndexOutOfBoundsException( - std::string("start ") + std::to_string(start) + - std::string(" or stop ") + std::to_string(stop) + - std::string(" not in 0..") + std::to_string(_tokens.size() - 1)); - } - - std::vector filteredTokens; - - if (start > stop) { - return filteredTokens; - } - - for (size_t i = start; i <= stop; i++) { - Token* tok = _tokens[i].get(); - - if (types.empty() || - std::find(types.begin(), types.end(), tok->getType()) != types.end()) { - filteredTokens.push_back(tok); - } - } - return filteredTokens; -} - -std::vector BufferedTokenStream::getTokens(size_t start, size_t stop, - size_t ttype) { - std::vector s; - s.push_back(ttype); - return getTokens(start, stop, s); -} - -ssize_t BufferedTokenStream::nextTokenOnChannel(size_t i, size_t channel) { - sync(i); - if (i >= size()) { - return size() - 1; - } - - Token* token = _tokens[i].get(); - while (token->getChannel() != channel) { - if (token->getType() == Token::EOF) { - return i; - } - i++; - sync(i); - token = _tokens[i].get(); - } - return i; -} - -ssize_t BufferedTokenStream::previousTokenOnChannel(size_t i, size_t channel) { - sync(i); - if (i >= size()) { - // the EOF token is on every channel - return size() - 1; - } - - while (true) { - Token* token = _tokens[i].get(); - if (token->getType() == Token::EOF || token->getChannel() == channel) { - return i; - } - - if (i == 0) break; - i--; - } - return i; -} - -std::vector BufferedTokenStream::getHiddenTokensToRight( - size_t tokenIndex, ssize_t channel) { - lazyInit(); - if (tokenIndex >= _tokens.size()) { - throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + - std::to_string(_tokens.size() - 1)); - } - - ssize_t nextOnChannel = - nextTokenOnChannel(tokenIndex + 1, Lexer::DEFAULT_TOKEN_CHANNEL); - size_t to; - size_t from = tokenIndex + 1; - // if none onchannel to right, nextOnChannel=-1 so set to = last token - if (nextOnChannel == -1) { - to = static_cast(size() - 1); - } else { - to = nextOnChannel; - } - - return filterForChannel(from, to, channel); -} - -std::vector BufferedTokenStream::getHiddenTokensToRight( - size_t tokenIndex) { - return getHiddenTokensToRight(tokenIndex, -1); -} - -std::vector BufferedTokenStream::getHiddenTokensToLeft( - size_t tokenIndex, ssize_t channel) { - lazyInit(); - if (tokenIndex >= _tokens.size()) { - throw IndexOutOfBoundsException(std::to_string(tokenIndex) + " not in 0.." + - std::to_string(_tokens.size() - 1)); - } - - if (tokenIndex == 0) { - // Obviously no tokens can appear before the first token. - return {}; - } - - ssize_t prevOnChannel = - previousTokenOnChannel(tokenIndex - 1, Lexer::DEFAULT_TOKEN_CHANNEL); - if (prevOnChannel == static_cast(tokenIndex - 1)) { - return {}; - } - // if none onchannel to left, prevOnChannel=-1 then from=0 - size_t from = static_cast(prevOnChannel + 1); - size_t to = tokenIndex - 1; - - return filterForChannel(from, to, channel); -} - -std::vector BufferedTokenStream::getHiddenTokensToLeft( - size_t tokenIndex) { - return getHiddenTokensToLeft(tokenIndex, -1); -} - -std::vector BufferedTokenStream::filterForChannel(size_t from, - size_t to, - ssize_t channel) { - std::vector hidden; - for (size_t i = from; i <= to; i++) { - Token* t = _tokens[i].get(); - if (channel == -1) { - if (t->getChannel() != Lexer::DEFAULT_TOKEN_CHANNEL) { - hidden.push_back(t); - } - } else { - if (t->getChannel() == static_cast(channel)) { - hidden.push_back(t); - } - } - } - - return hidden; -} - -bool BufferedTokenStream::isInitialized() const { return !_needSetup; } - -/** - * Get the text of all tokens in this buffer. - */ -std::string BufferedTokenStream::getSourceName() const { - return _tokenSource->getSourceName(); -} - -std::string BufferedTokenStream::getText() { - return getText(misc::Interval(0U, size() - 1)); -} - -std::string BufferedTokenStream::getText(const misc::Interval& interval) { - lazyInit(); - fill(); - size_t start = interval.a; - size_t stop = interval.b; - if (start == INVALID_INDEX || stop == INVALID_INDEX) { - return ""; - } - if (stop >= _tokens.size()) { - stop = _tokens.size() - 1; - } - - std::stringstream ss; - for (size_t i = start; i <= stop; i++) { - Token* t = _tokens[i].get(); - if (t->getType() == Token::EOF) { - break; - } - ss << t->getText(); - } - return ss.str(); -} - -std::string BufferedTokenStream::getText(RuleContext* ctx) { - return getText(ctx->getSourceInterval()); -} - -std::string BufferedTokenStream::getText(Token* start, Token* stop) { - if (start != nullptr && stop != nullptr) { - return getText( - misc::Interval(start->getTokenIndex(), stop->getTokenIndex())); - } - - return ""; -} - -void BufferedTokenStream::fill() { - lazyInit(); - const size_t blockSize = 1000; - while (true) { - size_t fetched = fetch(blockSize); - if (fetched < blockSize) { - return; - } - } -} - -void BufferedTokenStream::InitializeInstanceFields() { - _needSetup = true; - _fetchedEOF = false; -} diff --git a/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h b/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h deleted file mode 100644 index 320d1248cd..0000000000 --- a/third_party/antlr4/runtime/Cpp/runtime/src/BufferedTokenStream.h +++ /dev/null @@ -1,207 +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. - * - *

- * 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}.

- */ -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 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 getTokens(); - virtual std::vector getTokens(size_t start, size_t stop); - - /// - /// 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. - /// - virtual std::vector getTokens(size_t start, size_t stop, - const std::vector& types); - virtual std::vector 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 getHiddenTokensToRight(size_t tokenIndex, - ssize_t channel); - - /// - /// 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. - /// - virtual std::vector getHiddenTokensToRight(size_t tokenIndex); - - /// - /// 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. - /// - virtual std::vector getHiddenTokensToLeft(size_t tokenIndex, - ssize_t channel); - - /// - /// 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. - /// - virtual std::vector 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> _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)}. - * - *

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.

- */ - // 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: - * - *