diff --git a/runtime/Cpp/demo/generate.sh b/runtime/Cpp/demo/generate.sh index 2fc22964b..b26f026c4 100755 --- a/runtime/Cpp/demo/generate.sh +++ b/runtime/Cpp/demo/generate.sh @@ -9,8 +9,8 @@ set -o errexit # There are 2 ways of running the ANTLR generator here. # 1) Running from jar. Use the given jar (or replace it by another one you built or downloaded) for generation. -LOCATION=antlr-4.1.1-dev-complete.jar -java -jar $LOCATION -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest TLexer.g4 TParser.g4 +#LOCATION=antlr-4.1.1-dev-complete.jar +#java -jar $LOCATION -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest TLexer.g4 TParser.g4 #java -jar $LOCATION -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest -XdbgST TLexer.g4 TParser.g4 #java -jar $LOCATION -Dlanguage=Java -listener -visitor -o generated/ -package antlrcpptest TLexer.g4 TParser.g4 @@ -23,7 +23,7 @@ java -jar $LOCATION -Dlanguage=Cpp -listener -visitor -o generated/ -package ant # antlr jar over and over again. CLASSPATH=../../../tool/resources/:ST-4.0.8.jar:../../../tool/target/classes:../../../runtime/Java/target/classes:../../../../antlr3/runtime/Java/target/classes -#java -cp $CLASSPATH org.antlr.v4.Tool -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest TLexer.g4 TParser.g4 +java -cp $CLASSPATH org.antlr.v4.Tool -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest TLexer.g4 TParser.g4 #java -cp $CLASSPATH org.antlr.v4.Tool -Dlanguage=Cpp -listener -visitor -o generated/ -package antlrcpptest -XdbgST TLexer.g4 TParser.g4 #java -cp $CLASSPATH org.antlr.v4.Tool -Dlanguage=Java -listener -visitor -o generated/ TLexer.g4 TParser.g4 diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Cpp.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Cpp.stg index fd727863c..2eeb8a875 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Cpp.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Cpp.stg @@ -354,15 +354,17 @@ static std::wstring _serializedATN; // Constructs the serialized ATN and writes init code for static member vars. SerializedATN(model) ::= << - = - L" "}>";}; separator="\n"> + = { + }> +\};}; separator="\n"> _serializedATN = }; separator=" +\n">; -_serializedATN = - L" "}>"; +_serializedATN = { + }> +}; atn::ATNDeserializer deserializer; diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Files.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Files.stg index d1d07d91f..62b35288d 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Files.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Files.stg @@ -154,10 +154,10 @@ class BaseListener : public Listener { void exit(::Context *ctx) { \} }; separator="\n"> - void enterEveryRule(ParserRuleContext ctx) { } - void exitEveryRule(ParserRuleContext ctx) { } - void visitTerminal(tree::TerminalNode node) { } - void visitErrorNode(tree::ErrorNode node) { } + void enterEveryRule(ParserRuleContext::Ref ctx) { } + void exitEveryRule(ParserRuleContext::Ref ctx) { } + void visitTerminal(std::shared_ptr\ node) { } + void visitErrorNode(std::shared_ptr\ node) { } }; @@ -239,10 +239,11 @@ namespace { template \ class BaseVisitor : public tree::AbstractParseTreeVisitor\, public Visitor\ { public: - (::Context *ctx) <\\> - override { return tree::AbstractParseTreeVisitor\::visitChildren(ctx); \} - }; separator="\n"> +(::Context *ctx) override { + return tree::AbstractParseTreeVisitor\::visitChildren(ctx); + \} +}; separator="\n"> }; diff --git a/tool/src/org/antlr/v4/codegen/CppTarget.java b/tool/src/org/antlr/v4/codegen/CppTarget.java index a05b3fa83..b3cbcd1de 100644 --- a/tool/src/org/antlr/v4/codegen/CppTarget.java +++ b/tool/src/org/antlr/v4/codegen/CppTarget.java @@ -176,7 +176,7 @@ public class CppTarget extends Target { if (v < Character.MIN_VALUE || v > Character.MAX_VALUE) { throw new IllegalArgumentException(String.format("Cannot encode the specified value: %d", v)); } - +/* if (v >= 0 && v < targetCharValueEscape.length && targetCharValueEscape[v] != null) { return targetCharValueEscape[v]; } @@ -192,6 +192,8 @@ public class CppTarget extends Target { String hex = Integer.toHexString(v | 0x10000).substring(1, 5); return "\\u" + hex; + */ + return "0x" + Integer.toHexString(v) + ", "; } @Override