Merge branch 'master' into cpp_vocabulary_cleanup

This commit is contained in:
Terence Parr 2020-09-10 10:54:44 -07:00 committed by GitHub
commit fb2a34d5be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 47 additions and 10 deletions

View File

@ -251,4 +251,6 @@ YYYY/MM/DD, github id, Full name, email
2020/05/25, graknol, Sindre van der Linden, graknol@gmail.com 2020/05/25, graknol, Sindre van der Linden, graknol@gmail.com
2020/05/31, d-markey, David Markey, dmarkey@free.fr 2020/05/31, d-markey, David Markey, dmarkey@free.fr
2020/06/04, IohannRabeson, Iohann Rabeson, iotaka6@gmail.com 2020/06/04, IohannRabeson, Iohann Rabeson, iotaka6@gmail.com
2020/07/01, sha-N, Shan M Mathews, admin@bluestarqatar.com 2020/07/01, sha-N, Shan M Mathews, admin@bluestarqatar.com
2020/08/22, stevenjohnstone, Steven Johnstone, steven.james.johnstone@gmail.com
2020/09/06, ArthurSonzogni, Sonzogni Arthur, arthursonzogni@gmail.com

View File

@ -65,7 +65,7 @@ int main(int argc, const char* argv[]) {
tree::ParseTree *tree = parser.key(); tree::ParseTree *tree = parser.key();
TreeShapeListener listener; TreeShapeListener listener;
tree::ParseTreeWalker::DEFAULT->walk(&listener, tree); tree::ParseTreeWalker::DEFAULT.walk(&listener, tree);
return 0; return 0;
} }

View File

@ -19,7 +19,7 @@ if(NOT WITH_DEMO)
FORCE) FORCE)
endif(NOT WITH_DEMO) endif(NOT WITH_DEMO)
option(WITH_LIBCXX "Building with clang++ and libc++(in Linux). To enable with: -DWITH_LIBCXX=On" On) option(WITH_LIBCXX "Building with clang++ and libc++(in Linux). To enable with: -DWITH_LIBCXX=On" Off)
option(WITH_STATIC_CRT "(Visual C++) Enable to statically link CRT, which avoids requiring users to install the redistribution package. option(WITH_STATIC_CRT "(Visual C++) Enable to statically link CRT, which avoids requiring users to install the redistribution package.
To disable with: -DWITH_STATIC_CRT=Off" On) To disable with: -DWITH_STATIC_CRT=Off" On)

View File

@ -182,6 +182,7 @@
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -201,6 +202,7 @@
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -220,6 +222,7 @@
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -239,6 +242,7 @@
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -259,6 +263,7 @@
</ForcedIncludeFiles> </ForcedIncludeFiles>
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -281,6 +286,7 @@
</ForcedIncludeFiles> </ForcedIncludeFiles>
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -303,6 +309,7 @@
</ForcedIncludeFiles> </ForcedIncludeFiles>
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -325,6 +332,7 @@
</ForcedIncludeFiles> </ForcedIncludeFiles>
<DisableSpecificWarnings>4251</DisableSpecificWarnings> <DisableSpecificWarnings>4251</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>

View File

@ -17,7 +17,11 @@ using namespace antlrcpp;
using misc::Interval; using misc::Interval;
#if __cplusplus >= 201703L
ANTLRInputStream::ANTLRInputStream(std::string_view input) {
#else
ANTLRInputStream::ANTLRInputStream(const std::string &input) { ANTLRInputStream::ANTLRInputStream(const std::string &input) {
#endif
InitializeInstanceFields(); InitializeInstanceFields();
load(input); load(input);
} }
@ -31,6 +35,16 @@ ANTLRInputStream::ANTLRInputStream(std::istream &stream) {
load(stream); load(stream);
} }
#if __cplusplus >= 201703L
void ANTLRInputStream::load(std::string_view input) {
// Remove the UTF-8 BOM if present.
constexpr std::string_view bom = "\xef\xbb\xbf";
if (input.compare(0, 3, bom) == 0)
input.remove_prefix(3);
_data = antlrcpp::utf8_to_utf32(input.data(), input.data() + input.size());
p = 0;
}
#else
void ANTLRInputStream::load(const std::string &input) { void ANTLRInputStream::load(const std::string &input) {
// Remove the UTF-8 BOM if present. // Remove the UTF-8 BOM if present.
const char bom[4] = "\xef\xbb\xbf"; const char bom[4] = "\xef\xbb\xbf";
@ -40,6 +54,7 @@ void ANTLRInputStream::load(const std::string &input) {
_data = antlrcpp::utf8_to_utf32(input.data(), input.data() + input.size()); _data = antlrcpp::utf8_to_utf32(input.data(), input.data() + input.size());
p = 0; p = 0;
} }
#endif
void ANTLRInputStream::load(std::istream &stream) { void ANTLRInputStream::load(std::istream &stream) {
if (!stream.good() || stream.eof()) // No fail, bad or EOF. if (!stream.good() || stream.eof()) // No fail, bad or EOF.

View File

@ -25,11 +25,19 @@ namespace antlr4 {
/// What is name or source of this char stream? /// What is name or source of this char stream?
std::string name; std::string name;
#if __cplusplus >= 201703L
ANTLRInputStream(std::string_view input = "");
#else
ANTLRInputStream(const std::string &input = ""); ANTLRInputStream(const std::string &input = "");
#endif
ANTLRInputStream(const char data_[], size_t numberOfActualCharsInArray); ANTLRInputStream(const char data_[], size_t numberOfActualCharsInArray);
ANTLRInputStream(std::istream &stream); ANTLRInputStream(std::istream &stream);
#if __cplusplus >= 201703L
virtual void load(std::string_view input);
#else
virtual void load(const std::string &input); virtual void load(const std::string &input);
#endif
virtual void load(std::istream &stream); virtual void load(std::istream &stream);
/// Reset the stream so that it's in the same state it was /// Reset the stream so that it's in the same state it was

View File

@ -63,7 +63,7 @@ public:
}; };
<endif> <endif>
<lexer.name>(antlr4::CharStream *input); explicit <lexer.name>(antlr4::CharStream *input);
~<lexer.name>(); ~<lexer.name>();
<namedActions.members> <namedActions.members>
@ -192,23 +192,23 @@ atn::ATN <lexer.name>::_atn;
std::vector\<uint16_t> <lexer.name>::_serializedATN; std::vector\<uint16_t> <lexer.name>::_serializedATN;
std::vector\<std::string> <lexer.name>::_ruleNames = { std::vector\<std::string> <lexer.name>::_ruleNames = {
<lexer.ruleNames: {r | u8"<r>"}; separator = ", ", wrap, anchor> <lexer.ruleNames: {r | "<r>"}; separator = ", ", wrap, anchor>
}; };
std::vector\<std::string> <lexer.name>::_channelNames = { std::vector\<std::string> <lexer.name>::_channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"<if (lexer.channels)>, <lexer.channels: {c | u8"<c>"}; separator = ", ", wrap, anchor><endif> "DEFAULT_TOKEN_CHANNEL", "HIDDEN"<if (lexer.channels)>, <lexer.channels: {c | "<c>"}; separator = ", ", wrap, anchor><endif>
}; };
std::vector\<std::string> <lexer.name>::_modeNames = { std::vector\<std::string> <lexer.name>::_modeNames = {
<lexer.modes: {m | u8"<m>"}; separator = ", ", wrap, anchor> <lexer.modes: {m | "<m>"}; separator = ", ", wrap, anchor>
}; };
std::vector\<std::string> <lexer.name>::_literalNames = { std::vector\<std::string> <lexer.name>::_literalNames = {
<lexer.literalNames: {t | u8<t>}; null = "\"\"", separator = ", ", wrap, anchor> <lexer.literalNames: {t | <t>}; null = "\"\"", separator = ", ", wrap, anchor>
}; };
std::vector\<std::string> <lexer.name>::_symbolicNames = { std::vector\<std::string> <lexer.name>::_symbolicNames = {
<lexer.symbolicNames: {t | u8<t>}; null = "\"\"", separator = ", ", wrap, anchor> <lexer.symbolicNames: {t | <t>}; null = "\"\"", separator = ", ", wrap, anchor>
}; };
dfa::Vocabulary <lexer.name>::_vocabulary(_literalNames, _symbolicNames); dfa::Vocabulary <lexer.name>::_vocabulary(_literalNames, _symbolicNames);
@ -290,7 +290,7 @@ public:
}; };
<endif> <endif>
<parser.name>(antlr4::TokenStream *input); explicit <parser.name>(antlr4::TokenStream *input);
~<parser.name>(); ~<parser.name>();
virtual std::string getGrammarFileName() const override; virtual std::string getGrammarFileName() const override;
@ -710,6 +710,8 @@ switch (getInterpreter\<atn::ParserATNSimulator>()->adaptivePredict(_input, <cho
break; break;
\} \}
}; separator="\n"> }; separator="\n">
default:
break;
} }
>> >>
@ -724,6 +726,8 @@ switch (getInterpreter\<atn::ParserATNSimulator>()->adaptivePredict(_input, <cho
break; break;
\} \}
}; separator = "\n"> }; separator = "\n">
default:
break;
} }
>> >>