From 7dc17ace6e1624ba08e3e2e322b60aa6617f5666 Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Sun, 14 May 2017 13:23:53 +0300 Subject: [PATCH 01/50] Distinct error codes, added unit-test. fixes #1865. --- .../org/antlr/v4/test/tool/TestToolSyntaxErrors.java | 11 +++++++++++ tool/src/org/antlr/v4/tool/ErrorType.java | 8 ++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tool-testsuite/test/org/antlr/v4/test/tool/TestToolSyntaxErrors.java b/tool-testsuite/test/org/antlr/v4/test/tool/TestToolSyntaxErrors.java index 3219c0bad..b19d6c865 100644 --- a/tool-testsuite/test/org/antlr/v4/test/tool/TestToolSyntaxErrors.java +++ b/tool-testsuite/test/org/antlr/v4/test/tool/TestToolSyntaxErrors.java @@ -8,6 +8,7 @@ package org.antlr.v4.test.tool; import org.antlr.v4.Tool; import org.antlr.v4.tool.ErrorType; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -60,6 +61,16 @@ public class TestToolSyntaxErrors extends BaseJavaToolTest { super.testSetUp(); } + @Test + public void AllErrorCodesDistinct() { + ErrorType[] errorTypes = ErrorType.class.getEnumConstants(); + for (int i = 0; i < errorTypes.length; i++) { + for (int j = i + 1; j < errorTypes.length; j++) { + Assert.assertNotEquals(errorTypes[i].code, errorTypes[j].code); + } + } + } + @Test public void testA() { super.testErrors(A, true); } @Test public void testExtraColon() { diff --git a/tool/src/org/antlr/v4/tool/ErrorType.java b/tool/src/org/antlr/v4/tool/ErrorType.java index 700269fb9..d7ad7ab40 100644 --- a/tool/src/org/antlr/v4/tool/ErrorType.java +++ b/tool/src/org/antlr/v4/tool/ErrorType.java @@ -394,11 +394,11 @@ public enum ErrorType { */ IMPORT_NAME_CLASH(113, " grammar and imported grammar both generate ", ErrorSeverity.ERROR), /** - * Compiler Error 160. + * Compiler Error 114. * *

cannot find tokens file filename

*/ - CANNOT_FIND_TOKENS_FILE_REFD_IN_GRAMMAR(160, "cannot find tokens file ", ErrorSeverity.ERROR), + CANNOT_FIND_TOKENS_FILE_REFD_IN_GRAMMAR(114, "cannot find tokens file ", ErrorSeverity.ERROR), /** * Compiler Warning 118. * @@ -522,7 +522,7 @@ public enum ErrorType { */ USE_OF_BAD_WORD(134, "symbol conflicts with generated code in target language or runtime", ErrorSeverity.ERROR), /** - * Compiler Error 134. + * Compiler Error 183. * *

rule reference rule is not currently supported in a set

* @@ -530,7 +530,7 @@ public enum ErrorType { * Note: This error has the same number as the unrelated error * {@link #USE_OF_BAD_WORD}.

*/ - UNSUPPORTED_REFERENCE_IN_LEXER_SET(134, "rule reference is not currently supported in a set", ErrorSeverity.ERROR), + UNSUPPORTED_REFERENCE_IN_LEXER_SET(183, "rule reference is not currently supported in a set", ErrorSeverity.ERROR), /** * Compiler Error 135. * From 49b462f9607a08dd98e37e672990afacf04f9136 Mon Sep 17 00:00:00 2001 From: Sergey Parshukov Date: Wed, 28 Jun 2017 11:43:50 +0300 Subject: [PATCH 02/50] Go file header complies with standardised Go 'generated code' header --- contributors.txt | 1 + tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 71e97419e..4de6877cd 100644 --- a/contributors.txt +++ b/contributors.txt @@ -150,3 +150,4 @@ YYYY/MM/DD, github id, Full name, email 2017/05/29, kosak, Corey Kosak, kosak@kosak.com 2017/06/10, jm-mikkelsen, Jan Martin Mikkelsen, janm@transactionware.com 2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com +2017/06/28, jBugman, Sergey Parshukov, codedby@bugman.me diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg index b1835e4e7..75112868a 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg @@ -1,5 +1,5 @@ fileHeader(grammarFileName, ANTLRVersion) ::= << -// Generated from by ANTLR . +// Code generated from by ANTLR . DO NOT EDIT. >> ParserFile(file, parser, namedActions, contextSuperClass) ::= << From 093009520751d5f4982bb050645703060a678f1e Mon Sep 17 00:00:00 2001 From: Eric Vergnaud Date: Sat, 15 Jul 2017 12:19:54 +0800 Subject: [PATCH 03/50] fix inconsistent naming in target stg --- .../v4/tool/templates/codegen/JavaScript/JavaScript.stg | 8 ++++---- .../antlr/v4/tool/templates/codegen/Python2/Python2.stg | 2 +- .../antlr/v4/tool/templates/codegen/Python3/Python3.stg | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg index fb5883c02..4d04b9f76 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg @@ -36,12 +36,12 @@ * REQUIRED. */ -pythonTypeInitMap ::= [ - "bool":"False", +javascriptTypeInitMap ::= [ + "bool":"false", "int":"0", "float":"0.0", "str":"", - default:"None" // anything other than a primitive type is an object + default:"{}" // anything other than a primitive type is an object ] // args must be , @@ -860,7 +860,7 @@ var serializedATN = [" "}>"].join(""); * must be an object, default value is "null". */ initValue(typeName) ::= << - + >> codeFileExtension() ::= ".js" diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Python2/Python2.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Python2/Python2.stg index b01a76fc4..570f1659f 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Python2/Python2.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Python2/Python2.stg @@ -809,7 +809,7 @@ def serializedATN(): * must be an object, default value is "null". */ initValue(typeName) ::= << - + >> codeFileExtension() ::= ".py" diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Python3/Python3.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Python3/Python3.stg index 081e3f3f1..34e525b85 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Python3/Python3.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Python3/Python3.stg @@ -816,7 +816,7 @@ def serializedATN(): * must be an object, default value is "null". */ initValue(typeName) ::= << - + >> codeFileExtension() ::= ".py" From 8b3da13259024bf4fd9913ebcc7c950339687779 Mon Sep 17 00:00:00 2001 From: vaibhavaingankar09 Date: Mon, 17 Jul 2017 06:45:29 +0000 Subject: [PATCH 04/50] fix to the ATN deserialiser issue on big endian architecture --- contributors.txt | 3 ++- .../runtime/CSharp/Antlr4.Runtime/Atn/ATNDeserializer.cs | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/contributors.txt b/contributors.txt index 63d6d57f5..ba29c99e4 100644 --- a/contributors.txt +++ b/contributors.txt @@ -150,4 +150,5 @@ YYYY/MM/DD, github id, Full name, email 2017/05/29, kosak, Corey Kosak, kosak@kosak.com 2017/06/11, erikbra, Erik A. Brandstadmoen, erik@brandstadmoen.net 2017/06/10, jm-mikkelsen, Jan Martin Mikkelsen, janm@transactionware.com -2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com \ No newline at end of file +2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com +2017/07/17, vaibhavaingankar09, Vaibhav Vaingankar, vbhvvaingankar9@gmail.com diff --git a/runtime/CSharp/runtime/CSharp/Antlr4.Runtime/Atn/ATNDeserializer.cs b/runtime/CSharp/runtime/CSharp/Antlr4.Runtime/Atn/ATNDeserializer.cs index 9009b9f43..3ce2e87d2 100644 --- a/runtime/CSharp/runtime/CSharp/Antlr4.Runtime/Atn/ATNDeserializer.cs +++ b/runtime/CSharp/runtime/CSharp/Antlr4.Runtime/Atn/ATNDeserializer.cs @@ -1092,7 +1092,10 @@ nextTransition_continue: ; protected internal Guid ReadUUID() { byte[] d = BitConverter.GetBytes (ReadLong ()); - Array.Reverse(d); + if(BitConverter.IsLittleEndian) + { + Array.Reverse(d); + } short c = (short)ReadInt(); short b = (short)ReadInt(); int a = ReadInt32(); From 2bce3a74d4c4c1fcc33611c63dd6afe195dc4f25 Mon Sep 17 00:00:00 2001 From: Corey Kosak Date: Mon, 17 Jul 2017 17:54:17 -0400 Subject: [PATCH 05/50] Remove the useless visibility attribute from this "enum class" declaration. When compiling under gcc, ANTLR4CPP_PUBLIC macro expands to the following gcc visibility attribute: __attribute__((visibility ("default"))) (when compiling under Windows it expands to the corresponding __declspec attribute) This change was introduced in commit 8ff852640a7ec62d46330f71e274c591ada1fc70 Although the attribute makes perfect sense when applied to a "class" declaration, it makes no sense (has no effect) when applied to an "enum class" declaration. I assume that doing so was unintentional; that when the change was introduced it was it was added mechanically to all "class XXX" instances in the source code, a process which accidentally picked up one "enum class XXX" instance. Although it has no effect on the object code, it leads to the following warning when compiling under gcc: /usr/local/include/antlr4-runtime/atn/PredictionMode.h:18:31: error: type attributes ignored after type is already defined [-Werror=attributes] enum class ANTLR4CPP_PUBLIC PredictionMode { This is a problem for people who would like their builds to be warning-free. Happily, this declaration can be safely removed. The "enum class" construct (just like with regular enum) does not cause any linker symbols to be emitted. So having a linker attribute on the type does not actually have any effect. It can therefore be safely removed. --- runtime/Cpp/runtime/src/atn/PredictionMode.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/Cpp/runtime/src/atn/PredictionMode.h b/runtime/Cpp/runtime/src/atn/PredictionMode.h index d3de2e952..726f4cf40 100755 --- a/runtime/Cpp/runtime/src/atn/PredictionMode.h +++ b/runtime/Cpp/runtime/src/atn/PredictionMode.h @@ -15,7 +15,7 @@ namespace atn { * utility methods for analyzing configuration sets for conflicts and/or * ambiguities. */ - enum class ANTLR4CPP_PUBLIC PredictionMode { + enum class PredictionMode { /** * The SLL(*) prediction mode. This prediction mode ignores the current * parser context when making predictions. This is the fastest prediction From 6e02088e6abb687f4752b3d0bfcf9fe56e8b3992 Mon Sep 17 00:00:00 2001 From: Renata Hodovan Date: Tue, 18 Jul 2017 18:29:36 +0200 Subject: [PATCH 06/50] Python: add public getter to parsers to access syntax error count. ANTLR parsers in Java are allowed to access the number of encountered syntax errors via the getNumberOfSyntaxErrors method. However, the Python variants must use the protected _syntaxErrors member to get this value. The patch defines the same getter for Python targets too. --- runtime/Python2/src/antlr4/Parser.py | 7 +++++++ runtime/Python3/src/antlr4/Parser.py | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/runtime/Python2/src/antlr4/Parser.py b/runtime/Python2/src/antlr4/Parser.py index d88f77918..69abe739b 100644 --- a/runtime/Python2/src/antlr4/Parser.py +++ b/runtime/Python2/src/antlr4/Parser.py @@ -218,6 +218,13 @@ class Parser (Recognizer): self._ctx.exitRule(listener) listener.exitEveryRule(self._ctx) + # Gets the number of syntax errors reported during parsing. This value is + # incremented each time {@link #notifyErrorListeners} is called. + # + # @see #notifyErrorListeners + # + def getNumberOfSyntaxErrors(self): + return self._syntaxErrors def getTokenFactory(self): return self._input.tokenSource._factory diff --git a/runtime/Python3/src/antlr4/Parser.py b/runtime/Python3/src/antlr4/Parser.py index 03f10a438..c461bbdc0 100644 --- a/runtime/Python3/src/antlr4/Parser.py +++ b/runtime/Python3/src/antlr4/Parser.py @@ -227,6 +227,14 @@ class Parser (Recognizer): listener.exitEveryRule(self._ctx) + # Gets the number of syntax errors reported during parsing. This value is + # incremented each time {@link #notifyErrorListeners} is called. + # + # @see #notifyErrorListeners + # + def getNumberOfSyntaxErrors(self): + return self._syntaxErrors + def getTokenFactory(self): return self._input.tokenSource._factory From e01af374d2d725e236be8ea5c0e12d7d0b1dab10 Mon Sep 17 00:00:00 2001 From: Venkat Peri Date: Sat, 22 Jul 2017 18:11:37 -0400 Subject: [PATCH 07/50] 'requires' SUPERclass for Lexers in split mode, symbols/modes/channels available on Lexer prototype for use in lexer actions (this.SOME_MODE) like in Java actions, Utils.escapeWhiteSpace uses regex for global replace (was replacing only first occurnce of \n etc). --- runtime/JavaScript/src/antlr4/Utils.js | 10 +++++----- .../tool/templates/codegen/JavaScript/JavaScript.stg | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/runtime/JavaScript/src/antlr4/Utils.js b/runtime/JavaScript/src/antlr4/Utils.js index d7627be60..2cb939a66 100644 --- a/runtime/JavaScript/src/antlr4/Utils.js +++ b/runtime/JavaScript/src/antlr4/Utils.js @@ -401,11 +401,11 @@ DoubleDict.prototype.set = function (a, b, o) { function escapeWhitespace(s, escapeSpaces) { - s = s.replace("\t", "\\t"); - s = s.replace("\n", "\\n"); - s = s.replace("\r", "\\r"); + s = s.replace(/\t/g, "\\t") + .replace(/\n/g, "\\n") + .replace(/\r/g, "\\r"); if (escapeSpaces) { - s = s.replace(" ", "\u00B7"); + s = s.replace(/ /g, "\u00B7"); } return s; } @@ -443,4 +443,4 @@ exports.hashStuff = hashStuff; exports.escapeWhitespace = escapeWhitespace; exports.arrayToString = arrayToString; exports.titleCase = titleCase; -exports.equalArrays = equalArrays; \ No newline at end of file +exports.equalArrays = equalArrays; diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg index fb5883c02..6981ec03f 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg @@ -160,6 +160,7 @@ Object.defineProperty(.prototype, "atn", { }); .EOF = antlr4.Token.EOF; +.prototype.EOF = antlr4.Token.EOF; . = ;}; separator="\n", wrap, anchor> @@ -802,6 +803,9 @@ var antlr4 = require('antlr4/index'); >> Lexer(lexer, atn, actionFuncs, sempredFuncs, superClass) ::= << + +var = require('./').; + @@ -819,14 +823,18 @@ function (input) { .prototype.constructor = ; .EOF = antlr4.Token.EOF; +.prototype.EOF = antlr4.Token.EOF; . = ;}; separator="\n", wrap, anchor> +.prototype. = ;}; separator="\n", wrap, anchor> . = ;}; separator="\n"> +.prototype. = ;}; separator="\n"> . = ;}; separator="\n"> +.prototype. = ;}; separator="\n"> .prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "}; separator=", ", wrap, anchor> ]; From 61edb0204dff4e35840d8a35e82e937268d02bb5 Mon Sep 17 00:00:00 2001 From: Venkat Peri Date: Sun, 23 Jul 2017 10:14:34 -0400 Subject: [PATCH 08/50] signed contributors.txt --- contributors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 63d6d57f5..4187ee0cc 100644 --- a/contributors.txt +++ b/contributors.txt @@ -150,4 +150,5 @@ YYYY/MM/DD, github id, Full name, email 2017/05/29, kosak, Corey Kosak, kosak@kosak.com 2017/06/11, erikbra, Erik A. Brandstadmoen, erik@brandstadmoen.net 2017/06/10, jm-mikkelsen, Jan Martin Mikkelsen, janm@transactionware.com -2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com \ No newline at end of file +2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com +2017/07/23, venkatperi, Venkat Peri, venkatperi@gmail.com From caa5e46def0cdd0a48fd0e2bee64bf2bc90b84ec Mon Sep 17 00:00:00 2001 From: Venkat Peri Date: Mon, 24 Jul 2017 15:09:43 -0400 Subject: [PATCH 09/50] removed proto level stuff --- .../antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg index 6981ec03f..3095dcc29 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg @@ -160,7 +160,6 @@ Object.defineProperty(.prototype, "atn", { }); .EOF = antlr4.Token.EOF; -.prototype.EOF = antlr4.Token.EOF; . = ;}; separator="\n", wrap, anchor> @@ -825,16 +824,13 @@ function (input) { .EOF = antlr4.Token.EOF; .prototype.EOF = antlr4.Token.EOF; . = ;}; separator="\n", wrap, anchor> -.prototype. = ;}; separator="\n", wrap, anchor> . = ;}; separator="\n"> -.prototype. = ;}; separator="\n"> . = ;}; separator="\n"> -.prototype. = ;}; separator="\n"> .prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "}; separator=", ", wrap, anchor> ]; From e123bb8cea642577b4291285aca7c1cf44f2f192 Mon Sep 17 00:00:00 2001 From: Venkat Peri Date: Mon, 24 Jul 2017 15:11:00 -0400 Subject: [PATCH 10/50] removed proto level stuff (one more) --- .../antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg | 1 - 1 file changed, 1 deletion(-) diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg index 3095dcc29..f143bbd38 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/JavaScript/JavaScript.stg @@ -822,7 +822,6 @@ function (input) { .prototype.constructor = ; .EOF = antlr4.Token.EOF; -.prototype.EOF = antlr4.Token.EOF; . = ;}; separator="\n", wrap, anchor> From 95338f710ecd201f2a5fe5f451c610aba7c64ae7 Mon Sep 17 00:00:00 2001 From: Matt Hauck Date: Thu, 27 Jul 2017 20:54:59 -0700 Subject: [PATCH 11/50] Ignore Cmake policy CMP0054 --- runtime/Cpp/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/Cpp/CMakeLists.txt b/runtime/Cpp/CMakeLists.txt index 65e704516..07ef35e69 100644 --- a/runtime/Cpp/CMakeLists.txt +++ b/runtime/Cpp/CMakeLists.txt @@ -33,6 +33,7 @@ endif() if(CMAKE_VERSION VERSION_EQUAL "3.3.0" OR CMAKE_VERSION VERSION_GREATER "3.3.0") CMAKE_POLICY(SET CMP0059 OLD) + CMAKE_POLICY(SET CMP0054 OLD) endif() if(CMAKE_SYSTEM_NAME MATCHES "Linux") From f12a71306200160bc5b7af99ade1ae11f0f50510 Mon Sep 17 00:00:00 2001 From: Matt Hauck Date: Thu, 27 Jul 2017 20:56:54 -0700 Subject: [PATCH 12/50] sign contributors.txt --- contributors.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/contributors.txt b/contributors.txt index 4b923fd79..97a19126e 100644 --- a/contributors.txt +++ b/contributors.txt @@ -153,3 +153,4 @@ YYYY/MM/DD, github id, Full name, email 2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com 2017/07/11, dhalperi, Daniel Halperin, daniel@halper.in 2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com +2017/07/27, matthauck, Matt Hauck, matthauck@gmail.com From ac9f75303e215dbc12937eba68089151aef6f874 Mon Sep 17 00:00:00 2001 From: Niels Basjes Date: Wed, 2 Aug 2017 14:29:36 +0200 Subject: [PATCH 13/50] Fixed empty CodePointCharStream throwing exception on getText. Fixes #1949 --- .../test/org/antlr/v4/runtime/TestCodePointCharStream.java | 1 + .../Java/src/org/antlr/v4/runtime/CodePointCharStream.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime-testsuite/test/org/antlr/v4/runtime/TestCodePointCharStream.java b/runtime-testsuite/test/org/antlr/v4/runtime/TestCodePointCharStream.java index 25c4c0919..c40c4048c 100644 --- a/runtime-testsuite/test/org/antlr/v4/runtime/TestCodePointCharStream.java +++ b/runtime-testsuite/test/org/antlr/v4/runtime/TestCodePointCharStream.java @@ -23,6 +23,7 @@ public class TestCodePointCharStream { CodePointCharStream s = CharStreams.fromString(""); assertEquals(0, s.size()); assertEquals(0, s.index()); + assertEquals("", s.toString()); } @Test diff --git a/runtime/Java/src/org/antlr/v4/runtime/CodePointCharStream.java b/runtime/Java/src/org/antlr/v4/runtime/CodePointCharStream.java index 491ef6918..107faa7b1 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/CodePointCharStream.java +++ b/runtime/Java/src/org/antlr/v4/runtime/CodePointCharStream.java @@ -151,8 +151,8 @@ public abstract class CodePointCharStream implements CharStream { /** Return the UTF-16 encoded string for the given interval */ @Override public String getText(Interval interval) { - int startIdx = Math.min(interval.a, size - 1); - int len = Math.min(interval.b - interval.a + 1, size); + int startIdx = Math.min(interval.a, size); + int len = Math.min(interval.b - interval.a + 1, size - startIdx); // We know the maximum code point in byteArray is U+00FF, // so we can treat this as if it were ISO-8859-1, aka Latin-1, From ba75dc95501c75414f787e60cb03acfdd99b28c2 Mon Sep 17 00:00:00 2001 From: Arshinskiy Mike Date: Thu, 3 Aug 2017 01:03:28 +0200 Subject: [PATCH 14/50] Added additional interval math functionality --- runtime/Go/antlr/interval_set.go | 62 ++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/runtime/Go/antlr/interval_set.go b/runtime/Go/antlr/interval_set.go index 510d90911..630b88032 100644 --- a/runtime/Go/antlr/interval_set.go +++ b/runtime/Go/antlr/interval_set.go @@ -27,6 +27,68 @@ func (i *Interval) Contains(item int) bool { return item >= i.Start && item < i.Stop } +// Does this start completely before other? Disjoint +func (i *Interval) StartsBeforeDisjoint(other *Interval) bool{ + return i.Start= other.Start +} + +// Does this.a start after other.b? May or may not be disjoint +func (i *Interval) StartsAfter(other *Interval) bool{ + return i.Start > other.Start +} + +// Does this start completely after other? Disjoint +func (i *Interval) StartsAfterDisjoint(other *Interval) bool{ + return i.Start > other.Stop +} + +// Does this start after other? NonDisjoint +func (i *Interval) StartsAfterNonDisjoint(other *Interval) bool{ + return i.Start>other.Start && i.Start <= other.Stop // i.Stop>=other.Stop implied +} + +// Are both ranges disjoint? I.e., no overlap? +func (i *Interval) Disjoint(other *Interval) bool{ + return i.StartsBeforeDisjoint(other) || i.StartsAfterDisjoint(other) +} + +// Are two intervals adjacent such as 0..41 and 42..42? +func (i *Interval) Adjacent(other *Interval) bool{ + return i.Start == other.Stop+1 || i.Stop == other.Start-1; +} + +func (i *Interval) ProperlyContains(other *Interval) bool{ + return other.Start >= i.Start && other.Stop <= i.Stop +} + +// Return the interval computed from combining this and other +func (i *Interval) Union(other *Interval) *Interval{ + return NewInterval(intMin(i.Start, other.Start), intMax(i.Stop, other.Stop)) +} + +// Return the interval in common between this and other +func (i *Interval) Intersection(other *Interval) *Interval{ + return NewInterval(intMax(i.Start, other.Start), intMin(i.Stop, other.Stop)) +} +// Return the interval with elements from this not in other; +// other must not be totally enclosed (properly contained) +// within this, which would result in two disjoint intervals +// instead of the single one returned by this method. +func (i *Interval) DifferenceNotProperlyContained(other *Interval) *Interval{ + var diff *Interval = nil + if other.StartsBeforeDisjoint(i){ + diff = NewInterval(intMax(i.Start, other.Stop +1), i.Stop) + }else if other.StartsAfterNonDisjoint(i){ + diff = NewInterval(i.Start, other.Start -1) + } + return diff +} + func (i *Interval) String() string { if i.Start == i.Stop-1 { return strconv.Itoa(i.Start) From 5f2f7981b75f6223f5cf59e7a93f13c36539e692 Mon Sep 17 00:00:00 2001 From: Sam Harwell Date: Mon, 7 Aug 2017 18:04:32 -0500 Subject: [PATCH 15/50] Set the tab width in .editorconfig so GitHub shows source properly --- .editorconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.editorconfig b/.editorconfig index 53b65e9f3..daa6da0fb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,8 @@ root = true +[*] +tab_width = 4 + [*.{java,stg}] charset = utf-8 insert_final_newline = true From 715bfccb8033106663adb73ce319bf9a6bef868e Mon Sep 17 00:00:00 2001 From: Tiago Mazzutti Date: Sun, 20 Aug 2017 14:18:41 -0300 Subject: [PATCH 16/50] Update contributors.txt --- contributors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 2fda68671..c5d18265b 100644 --- a/contributors.txt +++ b/contributors.txt @@ -153,4 +153,5 @@ YYYY/MM/DD, github id, Full name, email 2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com 2017/07/11, dhalperi, Daniel Halperin, daniel@halper.in 2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com -2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com \ No newline at end of file +2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com +2017/08/20, tiagomazzutti, Tiago Mazzutti, tiagomzt@gmail.com From dc77aacfcd2fc0a068185e06d2356502d97e1a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Br=C3=A1ulio=20Bezerra?= Date: Sat, 9 Sep 2017 12:02:42 -0300 Subject: [PATCH 17/50] Fix codegen error (Java) when a lexer has only fragment tokens Solves issue #1999. --- contributors.txt | 3 ++- .../org/antlr/v4/tool/templates/codegen/Java/Java.stg | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 2fda68671..66996fe3a 100644 --- a/contributors.txt +++ b/contributors.txt @@ -153,4 +153,5 @@ YYYY/MM/DD, github id, Full name, email 2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com 2017/07/11, dhalperi, Daniel Halperin, daniel@halper.in 2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com -2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com \ No newline at end of file +2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com +2017/09/09, brauliobz, Bráulio Bezerra, brauliobezerra@gmail.com diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Java/Java.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Java/Java.stg index 0ebd212ec..492c56644 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Java/Java.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Java/Java.stg @@ -894,8 +894,10 @@ public class extends { protected static final DFA[] _decisionToDFA; protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); + public static final int =}; separator=", ", wrap, anchor>; + public static final int =}; separator=", ", wrap, anchor>; From 7ed8fe6d295c818c3b62fa6ea457d7a0327e77d3 Mon Sep 17 00:00:00 2001 From: Sachin Jain Date: Mon, 11 Sep 2017 16:23:45 +0530 Subject: [PATCH 18/50] Minor formatting Introduced newlines to have better view of steps. --- doc/getting-started.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/getting-started.md b/doc/getting-started.md index eaf2141fb..88aa7c990 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -21,11 +21,13 @@ $ curl -O http://www.antlr.org/download/antlr-4.5.3-complete.jar Or just download in browser from website: [http://www.antlr.org/download.html](http://www.antlr.org/download.html) and put it somewhere rational like `/usr/local/lib`. + 2. Add `antlr-4.5.3-complete.jar` to your `CLASSPATH`: ``` $ export CLASSPATH=".:/usr/local/lib/antlr-4.5.3-complete.jar:$CLASSPATH" ``` It's also a good idea to put this in your `.bash_profile` or whatever your startup script is. + 3. Create aliases for the ANTLR Tool, and `TestRig`. ``` $ alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.5.3-complete.jar:$CLASSPATH" org.antlr.v4.Tool' From efd985f4c32dd1144e8d465f9152c431159b02a3 Mon Sep 17 00:00:00 2001 From: Sachin Jain Date: Mon, 11 Sep 2017 16:26:06 +0530 Subject: [PATCH 19/50] Adding mention to contributor.txt --- contributors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 2fda68671..26ea8aded 100644 --- a/contributors.txt +++ b/contributors.txt @@ -153,4 +153,5 @@ YYYY/MM/DD, github id, Full name, email 2017/06/25, alimg, Alim Gökkaya, alim.gokkaya@gmail.com 2017/07/11, dhalperi, Daniel Halperin, daniel@halper.in 2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com -2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com \ No newline at end of file +2017/07/09, neatnerd, Mike Arshinskiy, neatnerd@users.noreply.github.com +2017/09/11, sachinjain024, Sachin Jain, sachinjain024@gmail.com From 50d2d3ef5541bf3c3a143e58fc0207de8d290d92 Mon Sep 17 00:00:00 2001 From: gendalph Date: Tue, 12 Sep 2017 22:10:59 +0300 Subject: [PATCH 20/50] CMake build fixes for Visual Studio Remove unsupported cmd line options (gcc). Disable warning for DLL. --- runtime/Cpp/CMakeLists.txt | 10 ++++++++-- runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake | 2 ++ runtime/Cpp/demo/CMakeLists.txt | 8 +++++++- runtime/Cpp/runtime/CMakeLists.txt | 10 +++++++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/runtime/Cpp/CMakeLists.txt b/runtime/Cpp/CMakeLists.txt index 65e704516..cfc8a7693 100644 --- a/runtime/Cpp/CMakeLists.txt +++ b/runtime/Cpp/CMakeLists.txt @@ -25,7 +25,8 @@ project(LIBANTLR4) if(CMAKE_VERSION VERSION_EQUAL "3.0.0" OR CMAKE_VERSION VERSION_GREATER "3.0.0") - CMAKE_POLICY(SET CMP0026 OLD) + CMAKE_POLICY(SET CMP0026 NEW) + CMAKE_POLICY(SET CMP0054 OLD) CMAKE_POLICY(SET CMP0045 OLD) CMAKE_POLICY(SET CMP0042 OLD) endif() @@ -61,7 +62,9 @@ if (WITH_DEMO) endif() endif(WITH_DEMO) -set(MY_CXX_WARNING_FLAGS " -Wall -pedantic -W") +if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(MY_CXX_WARNING_FLAGS " -Wall -pedantic -W") +endif () # Initialize CXXFLAGS. if("${CMAKE_VERSION}" VERSION_GREATER 3.1.0) @@ -75,11 +78,13 @@ else() set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -std=c++11") endif() +if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ${MY_CXX_WARNING_FLGAS}") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g ${MY_CXX_WARNING_FLAGS}") +endif () # Compiler-specific C++11 activation. if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -101,6 +106,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_SYSTEM_NAME MATCHES if (WITH_LIBCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() +elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") else () message(FATAL_ERROR "Your C++ compiler does not support C++11.") endif () diff --git a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake index e1c28821a..a77c09307 100644 --- a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake +++ b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake @@ -206,11 +206,13 @@ macro(antlr4cpp_process_grammar # export generated cpp files into list foreach(generated_file ${generated_files}) list(APPEND antlr4cpp_src_files_${antlr4cpp_project_namespace} ${generated_file}) + if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set_source_files_properties( ${generated_file} PROPERTIES COMPILE_FLAGS -Wno-overloaded-virtual ) + endif () endforeach(generated_file) message(STATUS "Antlr4Cpp ${antlr4cpp_project_namespace} Generated: ${generated_files}") diff --git a/runtime/Cpp/demo/CMakeLists.txt b/runtime/Cpp/demo/CMakeLists.txt index a91c40ddc..53e45fe40 100644 --- a/runtime/Cpp/demo/CMakeLists.txt +++ b/runtime/Cpp/demo/CMakeLists.txt @@ -45,11 +45,17 @@ set(antlr4-demo_SRC ${antlr4-demo-GENERATED_SRC} ) +if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set (flags_1 "-Wno-overloaded-virtual") +else() + set (flags_1 "-MP /wd4251") +endif() + foreach( src_file ${antlr4-demo_SRC} ) set_source_files_properties( ${src_file} PROPERTIES - COMPILE_FLAGS -Wno-overloaded-virtual + COMPILE_FLAGS "${COMPILE_FLAGS} ${flags_1}" ) endforeach( src_file ${antlr4-demo_SRC} ) diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt index b2a4fbd02..c51d7f310 100644 --- a/runtime/Cpp/runtime/CMakeLists.txt +++ b/runtime/Cpp/runtime/CMakeLists.txt @@ -44,7 +44,10 @@ elseif(APPLE) target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY}) endif() -set(disabled_compile_warnings "-Wno-overloaded-virtual") +if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(disabled_compile_warnings "-Wno-overloaded-virtual") +endif () + if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(disabled_compile_warnings "${disabled_compile_warnings} -Wno-dollar-in-identifier-extension -Wno-four-char-constants") elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -58,6 +61,11 @@ if (WIN32) set(extra_static_compile_flags "-DANTLR4CPP_STATIC") endif(WIN32) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(extra_share_compile_flags "-DANTLR4CPP_EXPORTS -MP /wd4251") + set(extra_static_compile_flags "-DANTLR4CPP_STATIC -MP") +endif() + set_target_properties(antlr4_shared PROPERTIES VERSION ${ANTLR_VERSION} SOVERSION ${ANTLR_VERSION} From 8f30ae661050b4dbf9cdcc1e9473087547a2655c Mon Sep 17 00:00:00 2001 From: Robert Jacobson Date: Sat, 16 Sep 2017 16:16:01 -0400 Subject: [PATCH 21/50] Import RuleContext into the antlr4 module namespace. See Issue #2012. --- runtime/Python3/src/antlr4/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/Python3/src/antlr4/__init__.py b/runtime/Python3/src/antlr4/__init__.py index 4eac6c579..37c834202 100644 --- a/runtime/Python3/src/antlr4/__init__.py +++ b/runtime/Python3/src/antlr4/__init__.py @@ -12,7 +12,7 @@ from antlr4.atn.LexerATNSimulator import LexerATNSimulator from antlr4.atn.ParserATNSimulator import ParserATNSimulator from antlr4.atn.PredictionMode import PredictionMode from antlr4.PredictionContext import PredictionContextCache -from antlr4.ParserRuleContext import ParserRuleContext +from antlr4.ParserRuleContext import RuleContext, ParserRuleContext from antlr4.tree.Tree import ParseTreeListener, ParseTreeVisitor, ParseTreeWalker, TerminalNode, ErrorNode, RuleNode from antlr4.error.Errors import RecognitionException, IllegalStateException, NoViableAltException from antlr4.error.ErrorStrategy import BailErrorStrategy From 41cd0309a7920477ec2357f852fd8e31bcc249c4 Mon Sep 17 00:00:00 2001 From: fallnirvana <903689031@qq.com> Date: Tue, 19 Sep 2017 23:19:39 +0800 Subject: [PATCH 22/50] correct the version of the antlr jar package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit version of the antlr jar package is different from other place of this doc,and it make mistake. --- doc/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/getting-started.md b/doc/getting-started.md index eaf2141fb..97863fb0c 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -39,7 +39,7 @@ $ alias grun='java org.antlr.v4.gui.TestRig' 0. Install Java (version 1.6 or higher) 1. Download antlr-4.5.3-complete.jar (or whatever version) from [http://www.antlr.org/download/](http://www.antlr.org/download/) Save to your directory for 3rd party Java libraries, say `C:\Javalib` -2. Add `antlr-4.5-complete.jar` to CLASSPATH, either: +2. Add `antlr-4.5.3-complete.jar` to CLASSPATH, either: * Permanently: Using System Properties dialog > Environment variables > Create or append to `CLASSPATH` variable * Temporarily, at command line: ``` From d95fb2ec46f41abf30d413cde95271f3e674baa0 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 28 Sep 2017 15:48:25 -0700 Subject: [PATCH 23/50] Replace oraclejdk7 with openjdk7 in .travis.yml. Oracle JDK 7 support has been withdrawn. https://github.com/travis-ci/travis-ci/issues/7964 http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index d27ee56b3..17d1527c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ matrix: include: - os: linux compiler: clang - jdk: oraclejdk7 + jdk: openjdk7 env: - TARGET=cpp - CXX=g++-5 @@ -104,13 +104,13 @@ matrix: - TARGET=dotnet - GROUP=RECURSION - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=java - os: linux jdk: oraclejdk8 env: TARGET=java - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=csharp - os: linux jdk: oraclejdk8 @@ -131,10 +131,10 @@ matrix: - TARGET=dotnet - GROUP=RECURSION - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=python2 - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=python3 addons: apt: @@ -143,10 +143,10 @@ matrix: packages: - python3.5 - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=javascript - os: linux - jdk: oraclejdk7 + jdk: openjdk7 env: TARGET=go before_install: From 99d32dc86189a1e25eaded875504167f0309f0bd Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 28 Sep 2017 16:10:26 -0700 Subject: [PATCH 24/50] Add some version numbers to pom.xml. This silences warnings from Maven. --- runtime/Java/pom.xml | 1 + tool/pom.xml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/runtime/Java/pom.xml b/runtime/Java/pom.xml index c42015629..3eb60b2df 100644 --- a/runtime/Java/pom.xml +++ b/runtime/Java/pom.xml @@ -27,6 +27,7 @@ org.apache.maven.plugins maven-source-plugin + 3.0.1 diff --git a/tool/pom.xml b/tool/pom.xml index 1952a25ec..cb172c534 100644 --- a/tool/pom.xml +++ b/tool/pom.xml @@ -58,6 +58,7 @@ org.apache.maven.plugins maven-source-plugin + 3.0.1 @@ -86,6 +87,7 @@ org.codehaus.mojo build-helper-maven-plugin + 3.0.0 generate-sources From 44031b544dccb9b07dda44b821a14cfdc8337439 Mon Sep 17 00:00:00 2001 From: Eric Vergnaud Date: Sat, 30 Sep 2017 17:07:40 +0800 Subject: [PATCH 25/50] fix #2031 --- runtime/Python2/src/antlr4/tree/RuleTagToken.py | 9 ++++----- runtime/Python2/src/antlr4/tree/TokenTagToken.py | 8 ++++---- runtime/Python2/src/antlr4/tree/Tree.py | 6 +++--- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/runtime/Python2/src/antlr4/tree/RuleTagToken.py b/runtime/Python2/src/antlr4/tree/RuleTagToken.py index 2043c1625..d63a3a53b 100644 --- a/runtime/Python2/src/antlr4/tree/RuleTagToken.py +++ b/runtime/Python2/src/antlr4/tree/RuleTagToken.py @@ -36,14 +36,13 @@ class RuleTagToken(Token): self.tokenIndex = -1 # from 0..n-1 of the token object in the input stream self.line = 0 # line=1..n of the 1st character self.column = -1 # beginning of the line at which it occurs, 0..n-1 - self.label = label + self.label = unicode(label) self._text = self.getText() # text of the token. - - self.ruleName = ruleName + self.ruleName = unicode(ruleName) def getText(self): if self.label is None: - return "<" + self.ruleName + ">" + return u"<" + self.ruleName + u">" else: - return "<" + self.label + ":" + self.ruleName + ">" + return u"<" + self.label + ":" + self.ruleName + u">" diff --git a/runtime/Python2/src/antlr4/tree/TokenTagToken.py b/runtime/Python2/src/antlr4/tree/TokenTagToken.py index 2ffc79f6f..dba41f785 100644 --- a/runtime/Python2/src/antlr4/tree/TokenTagToken.py +++ b/runtime/Python2/src/antlr4/tree/TokenTagToken.py @@ -24,8 +24,8 @@ class TokenTagToken(CommonToken): # def __init__(self, tokenName, type, label=None): super(TokenTagToken, self).__init__(type=type) - self.tokenName = tokenName - self.label = label + self.tokenName = unicode(tokenName) + self.label = unicode(label) self._text = self.getText() # @@ -36,9 +36,9 @@ class TokenTagToken(CommonToken): # def getText(self): if self.label is None: - return "<" + self.tokenName + ">" + return u"<" + self.tokenName + u">" else: - return "<" + self.label + ":" + self.tokenName + ">" + return u"<" + self.label + u":" + self.tokenName + u">" #

The implementation for {@link TokenTagToken} returns a string of the form # {@code tokenName:type}.

diff --git a/runtime/Python2/src/antlr4/tree/Tree.py b/runtime/Python2/src/antlr4/tree/Tree.py index 26e959612..14b5f29ec 100644 --- a/runtime/Python2/src/antlr4/tree/Tree.py +++ b/runtime/Python2/src/antlr4/tree/Tree.py @@ -108,13 +108,13 @@ class TerminalNodeImpl(TerminalNode): return visitor.visitTerminal(self) def getText(self): - return self.symbol.text + return unicode(self.symbol.text) def __unicode__(self): if self.symbol.type == Token.EOF: - return "" + return u"" else: - return self.symbol.text + return unicode(self.symbol.text) # Represents a token that was consumed during resynchronization # rather than during a valid match operation. For example, From 6d337f9cce64ba9987751dbc62eba74634d17b95 Mon Sep 17 00:00:00 2001 From: Eric Vergnaud Date: Sat, 30 Sep 2017 17:20:35 +0800 Subject: [PATCH 26/50] seems jdk7 is no longer supported --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index d27ee56b3..d7781b286 100644 --- a/.travis.yml +++ b/.travis.yml @@ -110,7 +110,7 @@ matrix: jdk: oraclejdk8 env: TARGET=java - os: linux - jdk: oraclejdk7 + jdk: oraclejdk8 env: TARGET=csharp - os: linux jdk: oraclejdk8 @@ -131,10 +131,10 @@ matrix: - TARGET=dotnet - GROUP=RECURSION - os: linux - jdk: oraclejdk7 + jdk: oraclejdk8 env: TARGET=python2 - os: linux - jdk: oraclejdk7 + jdk: oraclejdk8 env: TARGET=python3 addons: apt: @@ -143,7 +143,7 @@ matrix: packages: - python3.5 - os: linux - jdk: oraclejdk7 + jdk: oraclejdk8 env: TARGET=javascript - os: linux jdk: oraclejdk7 From 7d6189beea7c9029e15ff88884005d92042adb9c Mon Sep 17 00:00:00 2001 From: Andrew Brampton Date: Fri, 6 Oct 2017 07:40:35 -0700 Subject: [PATCH 27/50] bramp signed the contributors.txt --- contributors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index e73adaadc..2338243da 100644 --- a/contributors.txt +++ b/contributors.txt @@ -155,4 +155,5 @@ YYYY/MM/DD, github id, Full name, email 2017/07/11, dhalperi, Daniel Halperin, daniel@halper.in 2017/07/17, vaibhavaingankar09, Vaibhav Vaingankar, vbhvvaingankar9@gmail.com 2017/07/23, venkatperi, Venkat Peri, venkatperi@gmail.com -2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com \ No newline at end of file +2017/07/27, shirou, WAKAYAMA Shirou, shirou.faw@gmail.com +2017/10/06, bramp, Andrew Brampton, brampton@gmail.com From 9f90d5144292a040412e1fcf5cc328848e6f6ac8 Mon Sep 17 00:00:00 2001 From: Andrew Brampton Date: Fri, 6 Oct 2017 08:01:17 -0700 Subject: [PATCH 28/50] Placed the CommonSetStuff code inside a scope, this is to avoid two _lt variables in the same scope. This happens with the mysql grammar: `build: previous declaration at mysql/mysql_parser.go:12215:6` --- .../antlr/v4/tool/templates/codegen/Go/Go.stg | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg b/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg index b1835e4e7..626f28070 100644 --- a/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg +++ b/tool/resources/org/antlr/v4/tool/templates/codegen/Go/Go.stg @@ -777,29 +777,31 @@ MatchSet(m, expr, capture) ::= "" MatchNotSet(m, expr, capture) ::= "" CommonSetStuff(m, expr, capture, invert) ::= << -p.SetState() - - -var _lt = p.GetTokenStream().LT(1) - - = _lt}; separator="\n"> - - - - - - -if \<= 0 || if !() { +{ + p.SetState() - var _ri = p.GetErrorHandler().RecoverInline(p) - = _ri}; separator="\n"> - - p.GetErrorHandler().RecoverInline(p) + var _lt = p.GetTokenStream().LT(1) + + = _lt}; separator="\n"> + -} else { - p.GetErrorHandler().ReportMatch(p) - p.Consume() + + + + + if \<= 0 || if !() { + + var _ri = p.GetErrorHandler().RecoverInline(p) + + = _ri}; separator="\n"> + + p.GetErrorHandler().RecoverInline(p) + + } else { + p.GetErrorHandler().ReportMatch(p) + p.Consume() + } } >> From 5df3b2bbdfc02ca460340ab18d1935a4bd3c3c39 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 00:52:44 -0700 Subject: [PATCH 29/50] Remove ANTLRError.nullPointer from the Swift runtime. This was copied from the API of the equivalent code in Java when the runtime was ported to Swift. It is meaningless in Swift, and was unused. --- runtime/Swift/Sources/Antlr4/CharStream.swift | 1 - runtime/Swift/Sources/Antlr4/Parser.swift | 2 -- runtime/Swift/Sources/Antlr4/Recognizer.swift | 3 --- runtime/Swift/Sources/Antlr4/TokenStream.swift | 1 - runtime/Swift/Sources/Antlr4/misc/BitSet.swift | 4 ---- runtime/Swift/Sources/Antlr4/misc/exception/ANTLRError.swift | 1 - 6 files changed, 12 deletions(-) diff --git a/runtime/Swift/Sources/Antlr4/CharStream.swift b/runtime/Swift/Sources/Antlr4/CharStream.swift index 81fbf84d6..38e87e109 100644 --- a/runtime/Swift/Sources/Antlr4/CharStream.swift +++ b/runtime/Swift/Sources/Antlr4/CharStream.swift @@ -19,7 +19,6 @@ public protocol CharStream: IntStream { /// - parameter interval: an interval within the stream /// - returns: the text of the specified interval /// - /// - throws: _ANTLRError.nullPointer_ if `interval` is `null` /// - throws: _ANTLRError.illegalArgument_ if `interval.a < 0`, or if /// `interval.b < interval.a - 1`, or if `interval.b` lies at or /// past the end of the stream diff --git a/runtime/Swift/Sources/Antlr4/Parser.swift b/runtime/Swift/Sources/Antlr4/Parser.swift index 6f7f30742..5a4c9257e 100644 --- a/runtime/Swift/Sources/Antlr4/Parser.swift +++ b/runtime/Swift/Sources/Antlr4/Parser.swift @@ -336,8 +336,6 @@ open class Parser: Recognizer { /// /// - Parameter listener: the listener to add /// - /// - Throws: _ANTLRError.nullPointer_ if listener is `null` - /// public func addParseListener(_ listener: ParseTreeListener) { if _parseListeners == nil { _parseListeners = Array() diff --git a/runtime/Swift/Sources/Antlr4/Recognizer.swift b/runtime/Swift/Sources/Antlr4/Recognizer.swift index 9a3acad79..6133bbeea 100644 --- a/runtime/Swift/Sources/Antlr4/Recognizer.swift +++ b/runtime/Swift/Sources/Antlr4/Recognizer.swift @@ -228,9 +228,6 @@ open class Recognizer { return "\(s)" } - /// - /// - Throws: ANTLRError.nullPointer if `listener` is `null`. - /// open func addErrorListener(_ listener: ANTLRErrorListener) { _listeners.append(listener) diff --git a/runtime/Swift/Sources/Antlr4/TokenStream.swift b/runtime/Swift/Sources/Antlr4/TokenStream.swift index ef5834862..536f33b90 100644 --- a/runtime/Swift/Sources/Antlr4/TokenStream.swift +++ b/runtime/Swift/Sources/Antlr4/TokenStream.swift @@ -63,7 +63,6 @@ public protocol TokenStream: IntStream { /// /// - Parameter interval: The interval of tokens within this stream to get text /// for. - /// - Throws: ANTLRError.nullPointer if `interval` is `null` /// - Returns: The text of all tokens within the specified interval in this /// stream. /// diff --git a/runtime/Swift/Sources/Antlr4/misc/BitSet.swift b/runtime/Swift/Sources/Antlr4/misc/BitSet.swift index d2c9b510f..d0056ad0c 100644 --- a/runtime/Swift/Sources/Antlr4/misc/BitSet.swift +++ b/runtime/Swift/Sources/Antlr4/misc/BitSet.swift @@ -32,10 +32,6 @@ import Foundation /// implementation. The length of a bit set relates to logical length /// of a bit set and is defined independently of implementation. /// -/// Unless otherwise noted, passing a null parameter to any of the -/// methods in a `BitSet` will result in a -/// `ANTLRError.nullPointer`. -/// /// A `BitSet` is not safe for multithreaded use without /// external synchronization. /// diff --git a/runtime/Swift/Sources/Antlr4/misc/exception/ANTLRError.swift b/runtime/Swift/Sources/Antlr4/misc/exception/ANTLRError.swift index 2bc300c56..c9df3022e 100644 --- a/runtime/Swift/Sources/Antlr4/misc/exception/ANTLRError.swift +++ b/runtime/Swift/Sources/Antlr4/misc/exception/ANTLRError.swift @@ -14,7 +14,6 @@ import Foundation public enum ANTLRError: Error { - case nullPointer(msg:String) case unsupportedOperation(msg:String) case indexOutOfBounds(msg:String) case illegalState(msg:String) From 0097838b8a170ad0875b7a7124713584fdbf9418 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 16:49:03 -0700 Subject: [PATCH 30/50] Update AppVeyor version number to 4.7.1-SNAPSHOT. --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 57184557b..61ef31a41 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: '4.6-SNAPSHOT+AppVeyor.{build}' +version: '4.7.1-SNAPSHOT+AppVeyor.{build}' os: Windows Server 2012 build_script: - mvn -DskipTests install -q --batch-mode From 242dbe095d7dea9d6688f0ac0c8f64af61483a60 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 09:46:38 -0700 Subject: [PATCH 31/50] Add cache entries to .travis.yml. This is recommended by the Travis docs to speed up the parts of the tests where unpack / install has a significant cost, as opposed to the download. This changeset adds entries for ~/.m2 (for Maven) and ~/Library/Caches/Homebrew for (brew on macOS). --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index 6fe2a4b88..1d27cd0c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,11 @@ sudo: true language: java +cache: + directories: + - $HOME/.m2 + - $HOME/Library/Caches/Homebrew + matrix: include: - os: linux From 7bd52e5518fb2d61c897d633bdef250d5d090ad1 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 21:41:56 -0700 Subject: [PATCH 32/50] Wrap the run-tests-$TARGET.sh with a travis_wait call. This means that it will write a line to the log each minute while the tests are running, up to the specified timeout. This works around the fact that one of Maven / Surefire / JUnit are buffering our test output until a whole test class has run. This is a problem in particular with the TestLeftRecursion tests because they are taking over 9 minutes on their own. After 10 minutes of silence Travis assumes that a job is broken and kills it. We've been hitting that timeout regularly. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1d27cd0c9..3a4b97563 100644 --- a/.travis.yml +++ b/.travis.yml @@ -158,4 +158,4 @@ before_install: - ./.travis/before-install-$TRAVIS_OS_NAME-$TARGET.sh script: - - cd runtime-testsuite; ../.travis/run-tests-$TARGET.sh + - cd runtime-testsuite; travis_wait 40 ../.travis/run-tests-$TARGET.sh From 5f28a5b3131985a452bdc55114303eaa038d09b9 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 21:46:20 -0700 Subject: [PATCH 33/50] Split Travis tests into three phases. This gives a "smoke-test" phase which just runs the Java tests, to get a quick check that compilation is working. It is followed by the "main-test" phase that tests each target on their preferred platform (e.g. Swift on macOS, Python on Linux) followed by "test-extended" which runs all the remaining tests (all the other Java variants, and any other platforms supported by each target). This means that those tests in the later phases won't run unless the earlier phases have passed. This should vastly improve our Travis turnaround. This changeset also changes the matrix so that we get some coverage across all of openjdk7,8 and oraclejdk7,8 and moves the Go and Javascript tests to Trusty just so that they are more up-to-date. This adds one additional Java test run, so now we compare oraclejdk8 and openjdk8 in case of problems in that regard. Note that the test matrix has not been extended to cover oraclejdk9. This currently fails for us with a build issue, so it is not included in this changeset. This changeset also removes the meaningless custom apt configuration in the section for macOS .NET tests. --- .travis.yml | 65 ++++++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3a4b97563..6cedda6f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,11 @@ cache: - $HOME/.m2 - $HOME/Library/Caches/Homebrew +stages: + - smoke-test + - main-test + - extended-test + matrix: include: - os: linux @@ -16,6 +21,7 @@ matrix: - TARGET=cpp - CXX=g++-5 - GROUP=ALL + stage: main-test addons: apt: sources: @@ -31,113 +37,107 @@ matrix: env: - TARGET=cpp - GROUP=LEXER - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.7 - packages: - - g++-5 - - uuid-dev - - clang-3.7 + stage: extended-test - os: osx compiler: clang osx_image: xcode8.1 env: - TARGET=cpp - GROUP=PARSER - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.7 - packages: - - g++-5 - - uuid-dev - - clang-3.7 + stage: extended-test - os: osx compiler: clang osx_image: xcode8.1 env: - TARGET=cpp - GROUP=RECURSION - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.7 - packages: - - g++-5 - - uuid-dev - - clang-3.7 + stage: extended-test - os: osx compiler: clang osx_image: xcode8.1 env: - TARGET=swift - GROUP=LEXER + stage: main-test - os: osx compiler: clang osx_image: xcode8.1 env: - TARGET=swift - GROUP=PARSER + stage: main-test - os: osx compiler: clang osx_image: xcode8.1 env: - TARGET=swift - GROUP=RECURSION + stage: main-test - os: linux compiler: clang env: - TARGET=swift - GROUP=ALL + stage: extended-test - os: osx osx_image: xcode8.2 env: - TARGET=dotnet - GROUP=LEXER + stage: extended-test - os: osx osx_image: xcode8.2 env: - TARGET=dotnet - GROUP=PARSER + stage: extended-test - os: osx osx_image: xcode8.2 env: - TARGET=dotnet - GROUP=RECURSION + stage: extended-test - os: linux jdk: openjdk7 env: TARGET=java + stage: extended-test + - os: linux + jdk: openjdk8 + env: TARGET=java + stage: extended-test - os: linux jdk: oraclejdk8 env: TARGET=java + stage: smoke-test - os: linux jdk: openjdk7 env: TARGET=csharp + stage: extended-test - os: linux jdk: oraclejdk8 dist: trusty env: - TARGET=dotnet - GROUP=LEXER + stage: main-test - os: linux - jdk: oraclejdk8 + jdk: openjdk8 dist: trusty env: - TARGET=dotnet - GROUP=PARSER + stage: main-test - os: linux jdk: oraclejdk8 dist: trusty env: - TARGET=dotnet - GROUP=RECURSION + stage: main-test - os: linux jdk: openjdk7 env: TARGET=python2 + stage: extended-test - os: linux jdk: openjdk7 env: TARGET=python3 @@ -147,12 +147,17 @@ matrix: - deadsnakes # source required so it finds the package definition below packages: - python3.5 + stage: main-test - os: linux - jdk: openjdk7 + dist: trusty + jdk: openjdk8 env: TARGET=javascript + stage: main-test - os: linux - jdk: openjdk7 + dist: trusty + jdk: openjdk8 env: TARGET=go + stage: main-test before_install: - ./.travis/before-install-$TRAVIS_OS_NAME-$TARGET.sh From d297c9dddac4d4df3824003d540d54d3d4fa48f7 Mon Sep 17 00:00:00 2001 From: Arshinskiy Mike Date: Sat, 14 Oct 2017 15:15:41 +0200 Subject: [PATCH 34/50] added initial tests for interval set --- runtime/Go/antlr/interval_set_test.go | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 runtime/Go/antlr/interval_set_test.go diff --git a/runtime/Go/antlr/interval_set_test.go b/runtime/Go/antlr/interval_set_test.go new file mode 100644 index 000000000..832559df3 --- /dev/null +++ b/runtime/Go/antlr/interval_set_test.go @@ -0,0 +1,51 @@ +package antlr + +import ( + "testing" +) + +func assertInterval(t *testing.T, i *Interval, l int){ + if i.length() != l{ + t.Errorf("For interval [%s] [%d] length is expected, [%d] is actual", i.String(), l, i.length()) + } +} + +func assertString(t *testing.T, result string, expected string){ + if result != expected{ + t.Errorf("expected: %s, result:%s", result, expected) + } +} + +func TestDefaultIntervalLength(t *testing.T){ + assertInterval(t, NewInterval(0,0), 1) + assertInterval(t, NewInterval(100, 100), 1) + +} + +func TestIntervalSetAbsorb(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,20) + s.addRange(11,19) + assertString(t, "10..20", s.toIndexString()) +} + +func TestIntervalSetOverlap(t *testing.T){ + s := NewIntervalSet() + s.addRange(10, 20) + s.addRange(15, 25) + assertString(t, "10..25", s.toIndexString()) +} + +func TestIntervalSetIndependent(t *testing.T) { + s := NewIntervalSet() + s.addRange(10, 20) + s.addRange(30, 40) + assertString(t, "{10..20, 30..40}", s.toIndexString()) +} + +func TestIntervalSetAdjoint(t *testing.T) { + s := NewIntervalSet() + s.addRange(10,20) + s.addRange(20, 30) + assertString(t, "10..30", s.toIndexString()) +} \ No newline at end of file From 5297bf2697687dc1fc3f7732d0597d8963f12b13 Mon Sep 17 00:00:00 2001 From: Arshinskiy Mike Date: Sat, 14 Oct 2017 20:31:38 +0200 Subject: [PATCH 35/50] Modified open interval logic Added tests --- runtime/Go/antlr/interval_set.go | 56 +++++++++++++++------------ runtime/Go/antlr/interval_set_test.go | 56 ++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 26 deletions(-) diff --git a/runtime/Go/antlr/interval_set.go b/runtime/Go/antlr/interval_set.go index 630b88032..9a2fedf82 100644 --- a/runtime/Go/antlr/interval_set.go +++ b/runtime/Go/antlr/interval_set.go @@ -14,10 +14,9 @@ type Interval struct { Stop int } -/* stop is not included! */ +/* Inclusive interval*/ func NewInterval(start, stop int) *Interval { i := new(Interval) - i.Start = start i.Stop = stop return i @@ -29,7 +28,7 @@ func (i *Interval) Contains(item int) bool { // Does this start completely before other? Disjoint func (i *Interval) StartsBeforeDisjoint(other *Interval) bool{ - return i.Start ni.Start && v.Stop < ni.Stop { - i.intervals[k] = NewInterval(ni.Start, v.Start) - x := NewInterval(v.Stop, ni.Stop) + i.intervals[k] = NewInterval(ni.Start, v.Start-1) + x := NewInterval(v.Stop+1, ni.Stop) // i.intervals.splice(k, 0, x) - i.intervals = append(i.intervals[0:k], append([]*Interval{x}, i.intervals[k:]...)...) + i.intervals = append(i.intervals[0:k+1], append([]*Interval{x}, i.intervals[k+1:]...)...) return } else if v.Start <= ni.Start && v.Stop >= ni.Stop { // i.intervals.splice(k, 1) i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...) - k = k - 1 // need another pass + k = k - 1 + continue } else if v.Start < ni.Stop { - i.intervals[k] = NewInterval(ni.Start, v.Start) + i.intervals[k] = NewInterval(ni.Start, v.Start-1) } else if v.Stop < ni.Stop { - i.intervals[k] = NewInterval(v.Stop, ni.Stop) + i.intervals[k] = NewInterval(v.Stop+1, ni.Stop) } - k++ } } } @@ -247,18 +245,18 @@ func (i *IntervalSet) removeOne(v int) { // intervals i ordered if v < ki.Start { return - } else if v == ki.Start && v == ki.Stop-1 { + } else if v == ki.Start && v == ki.Stop { // i.intervals.splice(k, 1) i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...) return } else if v == ki.Start { i.intervals[k] = NewInterval(ki.Start+1, ki.Stop) return - } else if v == ki.Stop-1 { + } else if v == ki.Stop { i.intervals[k] = NewInterval(ki.Start, ki.Stop-1) return - } else if v < ki.Stop-1 { - x := NewInterval(ki.Start, v) + } else if v < ki.Stop { + x := NewInterval(ki.Start, v-1) ki.Start = v + 1 // i.intervals.splice(k, 0, x) i.intervals = append(i.intervals[0:k], append([]*Interval{x}, i.intervals[k:]...)...) @@ -297,9 +295,14 @@ func (i *IntervalSet) toCharString() string { names = append(names, ("'" + string(v.Start) + "'")) } } else { - names = append(names, "'"+string(v.Start)+"'..'"+string(v.Stop-1)+"'") + names = append(names, "'"+string(v.Start)+"'..'"+string(v.Stop)+"'") } } + + if len(names) == 0{ + return "{}" + } + if len(names) > 1 { return "{" + strings.Join(names, ", ") + "}" } @@ -319,9 +322,14 @@ func (i *IntervalSet) toIndexString() string { names = append(names, strconv.Itoa(v.Start)) } } else { - names = append(names, strconv.Itoa(v.Start)+".."+strconv.Itoa(v.Stop-1)) + names = append(names, strconv.Itoa(v.Start)+".."+strconv.Itoa(v.Stop)) } } + + if len(names) == 0{ + return "{}" + } + if len(names) > 1 { return "{" + strings.Join(names, ", ") + "}" } diff --git a/runtime/Go/antlr/interval_set_test.go b/runtime/Go/antlr/interval_set_test.go index 832559df3..1b15b7842 100644 --- a/runtime/Go/antlr/interval_set_test.go +++ b/runtime/Go/antlr/interval_set_test.go @@ -10,7 +10,7 @@ func assertInterval(t *testing.T, i *Interval, l int){ } } -func assertString(t *testing.T, result string, expected string){ +func assertString(t *testing.T, expected string, result string){ if result != expected{ t.Errorf("expected: %s, result:%s", result, expected) } @@ -19,7 +19,7 @@ func assertString(t *testing.T, result string, expected string){ func TestDefaultIntervalLength(t *testing.T){ assertInterval(t, NewInterval(0,0), 1) assertInterval(t, NewInterval(100, 100), 1) - + assertInterval(t, NewInterval(200,100),0) } func TestIntervalSetAbsorb(t *testing.T){ @@ -48,4 +48,56 @@ func TestIntervalSetAdjoint(t *testing.T) { s.addRange(10,20) s.addRange(20, 30) assertString(t, "10..30", s.toIndexString()) +} + +func TestIntervalSetBridge(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,20) + s.addRange(30,40) + s.addRange(20,30) + assertString(t, "10..40", s.toIndexString()) +} + +func TestIntervalSetBreak(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,40) + s.removeOne(25) + assertString(t, "{10..24, 26..40}", s.toIndexString()) +} + +func TestIntervalSetRemoveStart(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,40) + s.removeOne(10) + assertString(t, "11..40", s.toIndexString()) +} + +func TestIntervalSetRemoveEnd(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,40) + s.removeOne(40) + assertString(t, "10..39", s.toIndexString()) +} + +func TestIntervalSetRemoveSinglePoint(t *testing.T){ + s := NewIntervalSet() + s.addOne(10) + s.addRange(100,200) + s.removeOne(10) + assertString(t, "100..200", s.toIndexString()) +} + +func TestIntervalSetRemoveRangeMid(t *testing.T) { + s := NewIntervalSet() + s.addRange(10,30) + s.removeRange(NewInterval(15,20)) + assertString(t, "{10..14, 21..30}", s.toIndexString()) +} + +func TestIntervalSetRemoveEverything(t *testing.T){ + s := NewIntervalSet() + s.addRange(10,20) + s.addRange(30,40) + s.removeRange(NewInterval(5, 50)) + assertString(t, "{}", s.toIndexString()) } \ No newline at end of file From 51fc50dbcbdd43ab002694c9fed13d7b3f2e7139 Mon Sep 17 00:00:00 2001 From: simkimsia Date: Sun, 15 Oct 2017 16:14:50 +0800 Subject: [PATCH 36/50] Update getting-started.md change all mentions of 4.5.3 to 4.7 since that's what the quickstart on http://www.antlr.org/ homepage is already showing --- doc/getting-started.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/getting-started.md b/doc/getting-started.md index 62bc69711..30acdb65a 100644 --- a/doc/getting-started.md +++ b/doc/getting-started.md @@ -6,7 +6,7 @@ Hi and welcome to the version 4 release of ANTLR! It's named after the fearless ANTLR is really two things: a tool that translates your grammar to a parser/lexer in Java (or other target language) and the runtime needed by the generated parsers/lexers. Even if you are using the ANTLR Intellij plug-in or ANTLRWorks to run the ANTLR tool, the generated code will still need the runtime library. -The first thing you should do is probably download and install a development tool plug-in. Even if you only use such tools for editing, they are great. Then, follow the instructions below to get the runtime environment available to your system to run generated parsers/lexers. In what follows, I talk about antlr-4.5.3-complete.jar, which has the tool and the runtime and any other support libraries (e.g., ANTLR v4 is written in v3). +The first thing you should do is probably download and install a development tool plug-in. Even if you only use such tools for editing, they are great. Then, follow the instructions below to get the runtime environment available to your system to run generated parsers/lexers. In what follows, I talk about antlr-4.7-complete.jar, which has the tool and the runtime and any other support libraries (e.g., ANTLR v4 is written in v3). If you are going to integrate ANTLR into your existing build system using mvn, ant, or want to get ANTLR into your IDE such as eclipse or intellij, see Integrating ANTLR into Development Systems. @@ -16,7 +16,7 @@ If you are going to integrate ANTLR into your existing build system using mvn, a 1. Download ``` $ cd /usr/local/lib -$ curl -O http://www.antlr.org/download/antlr-4.5.3-complete.jar +$ curl -O http://www.antlr.org/download/antlr-4.7-complete.jar ``` Or just download in browser from website: [http://www.antlr.org/download.html](http://www.antlr.org/download.html) @@ -45,7 +45,7 @@ Save to your directory for 3rd party Java libraries, say `C:\Javalib` * Permanently: Using System Properties dialog > Environment variables > Create or append to `CLASSPATH` variable * Temporarily, at command line: ``` -SET CLASSPATH=.;C:\Javalib\antlr-4.5.3-complete.jar;%CLASSPATH% +SET CLASSPATH=.;C:\Javalib\antlr-4.7-complete.jar;%CLASSPATH% ``` 3. Create short convenient commands for the ANTLR Tool, and TestRig, using batch files or doskey commands: * Batch files (in directory in system PATH) antlr4.bat and grun.bat @@ -67,7 +67,7 @@ Either launch org.antlr.v4.Tool directly: ``` $ java org.antlr.v4.Tool -ANTLR Parser Generator Version 4.5.3 +ANTLR Parser Generator Version 4.7 -o ___ specify output directory where all output is generated -lib ___ specify location of .tokens files ... @@ -76,8 +76,8 @@ ANTLR Parser Generator Version 4.5.3 or use -jar option on java: ``` -$ java -jar /usr/local/lib/antlr-4.5.3-complete.jar -ANTLR Parser Generator Version 4.5.3 +$ java -jar /usr/local/lib/antlr-4.7-complete.jar +ANTLR Parser Generator Version 4.7 -o ___ specify output directory where all output is generated -lib ___ specify location of .tokens files ... From 3def33fdd59b2a5e5bc6d52bc25472910d835146 Mon Sep 17 00:00:00 2001 From: simkimsia Date: Sun, 15 Oct 2017 16:17:23 +0800 Subject: [PATCH 37/50] Update contributors.txt --- contributors.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contributors.txt b/contributors.txt index 8e79d3b68..2311a15bd 100644 --- a/contributors.txt +++ b/contributors.txt @@ -163,4 +163,5 @@ YYYY/MM/DD, github id, Full name, email 2017/08/20, tiagomazzutti, Tiago Mazzutti, tiagomzt@gmail.com 2017/09/09, brauliobz, Bráulio Bezerra, brauliobezerra@gmail.com 2017/09/11, sachinjain024, Sachin Jain, sachinjain024@gmail.com -2017/10/06, bramp, Andrew Brampton, brampton@gmail.com \ No newline at end of file +2017/10/06, bramp, Andrew Brampton, brampton@gmail.com +2017/10/15, simkimsia, Sim Kim Sia, kimcity@gmail.com From 7df0c2f47886c78de66bf7931e5ba87888a4d6c4 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Fri, 20 Oct 2017 00:26:35 -0700 Subject: [PATCH 38/50] Split the C++ tests into three groups. Running these as a single test still intermittently times out after 40 minutes, even with the other recent csets. --- .travis.yml | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6cedda6f5..131a71a7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,41 @@ matrix: env: - TARGET=cpp - CXX=g++-5 - - GROUP=ALL + - GROUP=LEXER + stage: main-test + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.7 + packages: + - g++-5 + - uuid-dev + - clang-3.7 + - os: linux + compiler: clang + jdk: openjdk7 + env: + - TARGET=cpp + - CXX=g++-5 + - GROUP=PARSER + stage: main-test + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.7 + packages: + - g++-5 + - uuid-dev + - clang-3.7 + - os: linux + compiler: clang + jdk: openjdk7 + env: + - TARGET=cpp + - CXX=g++-5 + - GROUP=RECURSION stage: main-test addons: apt: From 4d628174df4e8c287961e87eb0e9fbaa56dfd507 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 11:17:39 -0700 Subject: [PATCH 39/50] Update Swift runtime documentation. We now use boot.py and Swift Package Manager to generate the .xcodeproj rather than having those committed in the source repo. --- doc/swift-target.md | 107 +++++++++++++++++++++++++++----------------- 1 file changed, 65 insertions(+), 42 deletions(-) diff --git a/doc/swift-target.md b/doc/swift-target.md index 09dd17de3..57a8f8022 100644 --- a/doc/swift-target.md +++ b/doc/swift-target.md @@ -23,60 +23,83 @@ $ antlr4 -Dlanguage=Swift MyGrammar.g4 For a full list of antlr4 tool options, please visit the [tool documentation page](tool-options.md). + ## Build your Swift project with ANTLR runtime -The following instructions are assuming Xcode as the IDE: +The following instructions assume Xcode as the IDE. -* __Add parser/lexer to project__. Make sure the parsers/lexers +Note that even if you are otherwise using ANTLR from a binary distribution, +you should compile the ANTLR Swift runtime from source, because the Swift +language does not yet have a stable ABI. + +ANTLR uses Swift Package Manager to generate Xcode project files. Note that +Swift Package Manager does not currently support iOS, watchOS, or tvOS, so +if you wish to use those platforms, you will need to alter the project build +settings manually as appropriate. + +### Download source code for ANTLR + +``` +git clone https://github.com/antlr/antlr4 +``` + +### Generate Xcode project for ANTLR runtime + +The `boot.py` script includes a wrapper around `swift package +generate-xcodeproj`. Use this to generate `Antlr4.xcodeproj` for the ANTLR +Swift runtime. + +``` +cd antlr4/runtime/Swift +python boot.py --gen-xcodeproj +``` + +### Import ANTLR Swift runtime into your project + +Open your own project in Xcode. + +Open Finder in the `runtime/Swift` directory: + +``` +# From antlr4/runtime/Swift +open . +``` + +Drag `Antlr4.xcodeproj` into your project. + +After this is done, your Xcode project navigator will be something like the +screenshot below. In this example, your own project is "Smalltalk", and you +will be able to see `Antlr4.xcodeproj` shown as a contained project. + + + +### Edit the build settings if necessary + +Swift Package Manager currently does not support iOS, watchOS, or tvOS. If +you wish to build for those platforms, you will need to alter the project +build settings manually. + +### Add generated parser and lexer to project + +Make sure the parsers/lexers generated in __step 2__ are added to the project. To do this, you can drag the generated files from Finder to the Xcode IDE. Remember to check __Copy items if needed__ to make sure the files are actually moved into the project folder instead of symbolic links (see the screenshot below). After moving you will be able to see your files in -the project navigator. But when you open one of the files, you will -see Xcode complaining the module "Antlr4" could not be found at the -import statement. This is expected, since we still need the ANTLR -Swift runtime for those missing symbols. +the project navigator. Make sure that the Target Membership settings +are correct for your project. -* __Download ANTLR runtime__. Due to unstable ABI of Swift language, -there will not be a single "library" for the Swift ANTLR runtime for -now. To get Swift ANTLR runtime, clone the ANTLR repository. Open it -in finder. From the root directory of the repo, go to runtime/Swift -folder. You will see the Xcode project manifest file: -__Antlr4.xcodeproj__. +### Add the ANTLR Swift runtime as a dependency -* __Import ANTLR Swift runtime into project__. Drag Antlr4.xcodeproj -into your project, after this is done, your Xcode project navigator -will be something like the screenshot below. In this case, your own -project is "Smalltalk", and you will be able to see the -Antlr4.xcodeproj shown as a contained project. The error message will -still be there, that's because we still need to tell Xcode how to find -the runtime. +Select your own project in Xcode and go to the Build Phases settings panel. +Add the ANTLR runtime under __Target Dependencies__ and __Link Binary With +Libraries__. - + -* __Build ANTLR runtime__. By expanding the "Products" folder in the -inner project (Antlr4.xcodeproj), you will see two Antlr4.framework -files. ".framework" file is the swift version of ".jar", ".a" as in -JAVA, C/C++ Initially those two files should be red, that's because -they are not built. To build, click the "target selection" button -right next to your Xcode run button. And in the drop down select the -target you want to build. And you will see the two Antlr4.framework -files are for iOS and OSX, as shown below. After target selection, -press "CMD+B", and Xcode will build the framework for you. Then you -will see one of the frameworks become black. +### Build your project - - -* __Add dependencies__. Simply adding ANTLR Swift runtime and build -the artifact is not enough. You still need to specify -dependencies. Click your own project (Smalltalk), and you will see -project setting page. Go to "Build Phase", and inside it make sure -your ANTLR Swift runtime framework is added to both "__Target -Dependencies__" and "__Link Binary With Libraries__" sections, as -shown below. After correctly added dependencies, the error message for -importing library will be gone. - - \ No newline at end of file +The runtime and generated grammar should now build correctly. From 8ba2c0ba4f70eeb98f995716e569696231699e68 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 11:33:13 -0700 Subject: [PATCH 40/50] Add entries to .gitignore for the files that are generated by Swift Package Manager. --- runtime/Swift/.gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runtime/Swift/.gitignore b/runtime/Swift/.gitignore index c54511205..e4a84b226 100644 --- a/runtime/Swift/.gitignore +++ b/runtime/Swift/.gitignore @@ -1 +1,4 @@ +.build/ +Antlr4.xcodeproj/ +Tests/Antlr4Tests/gen/ xcuserdata/ From 4bafc74e6c99316c381eb5fb13e9cfbc9907c78e Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 12:07:49 -0700 Subject: [PATCH 41/50] Remove unused functions from StringExtension. Some of these are subject to change for Swift 4, but since they are unused we should remove them anyway. --- .../misc/extension/StringExtension.swift | 145 ------------------ .../pattern/ParseTreePatternMatcher.swift | 2 - 2 files changed, 147 deletions(-) diff --git a/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift b/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift index 49a39592c..c50ba7a1e 100644 --- a/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift +++ b/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift @@ -11,14 +11,6 @@ import Foundation extension String { - func split(_ separator: String) -> [String] { - return self.components(separatedBy: separator) - } - - func containsIgnoreCase(_ find: String) -> Bool { - return self.lowercased().range(of: find.lowercased()) != nil - } - var length: Int { return self.characters.count } @@ -60,32 +52,6 @@ extension String { return index } - func substringAfter(_ string: String) -> String { - if let range = self.range(of: string) { - let intIndex: Int = self.characters.distance(from: self.startIndex, to: range.upperBound) - return self.substring(from: self.characters.index(self.startIndex, offsetBy: intIndex)) - } - return self - - } - - var lowercaseFirstChar: String { - var result = self - if self.length > 0 { - let startIndex = self.startIndex - result.replaceSubrange(startIndex ... startIndex, with: String(self[startIndex]).lowercased()) - } - return result - } - func substringWithRange(_ range: Range) -> String { - - - let start = self.characters.index(self.startIndex, offsetBy: range.lowerBound) - - let end = self.characters.index(self.startIndex, offsetBy: range.upperBound) - return self.substring(with: start ..< end) - } - subscript(integerIndex: Int) -> Character { let index = characters.index(startIndex, offsetBy: integerIndex) return self[index] @@ -97,116 +63,5 @@ extension String { let range = start ..< end return self[range] } - - func charAt(_ index: Int) -> Character { - return self[self.characters.index(self.startIndex, offsetBy: index)] - } - } -// Mapping from XML/HTML character entity reference to character -// From http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references -private let characterEntities: [String:Character] = [ - // XML predefined entities: - """: "\"", - "&": "&", - "'": "'", - "<": "<", - ">": ">", - - // HTML character entity references: - " ": "\u{00a0}", - // ... - "♦": "♦", -] - -extension String { - - /// - /// Returns a new string made by replacing in the `String` - /// all HTML character entity references with the corresponding - /// character. - /// - var stringByDecodingHTMLEntities: String { - - - // Convert the number in the string to the corresponding - // Unicode character, e.g. - // decodeNumeric("64", 10) --> "@" - // decodeNumeric("20ac", 16) --> "€" - func decodeNumeric(_ string: String, base: Int32) -> Character? { - let code = UInt32(strtoul(string, nil, base)) - return Character(UnicodeScalar(code)!) - } - - // Decode the HTML character entity to the corresponding - // Unicode character, return `nil` for invalid input. - // decode("@") --> "@" - // decode("€") --> "€" - // decode("<") --> "<" - // decode("&foo;") --> nil - func decode(_ entity: String) -> Character? { - - if entity.hasPrefix("&#x") || entity.hasPrefix("&#X") { - return decodeNumeric(entity.substring(from: entity.characters.index(entity.startIndex, offsetBy: 3)), base: 16) - } else if entity.hasPrefix("&#") { - return decodeNumeric(entity.substring(from: entity.characters.index(entity.startIndex, offsetBy: 2)), base: 10) - } else { - return characterEntities[entity] - } - } - - var result = "" - var position = startIndex - - // Find the next '&' and copy the characters preceding it to `result`: - while let ampRange = self.range(of: "&", range: position ..< endIndex) { - result.append(self[position ..< ampRange.lowerBound]) - position = ampRange.lowerBound - - // Find the next ';' and copy everything from '&' to ';' into `entity` - if let semiRange = self.range(of: ";", range: position ..< endIndex) { - let entity = self[position ..< semiRange.upperBound] - position = semiRange.upperBound - - if let decoded = decode(entity) { - // Replace by decoded character: - result.append(decoded) - } else { - // Invalid entity, copy verbatim: - result.append(entity) - } - } else { - // No matching ';'. - break - } - } - // Copy remaining characters to `result`: - result.append(self[position ..< endIndex]) - return result - } -} - -extension String { - - static let htmlEscapedDictionary = [ - "&": "&", - """: "\"", - "'": "'", - "9": "'", - "’": "'", - "–": "'", - ">": ">", - "<": "<" - ] - - public var escapedHtmlString: String { - var newString = "\(self)" - - for (key, value) in String.htmlEscapedDictionary { - newString = newString.replacingOccurrences(of: value, with: key) - } - return newString - } - -} diff --git a/runtime/Swift/Sources/Antlr4/tree/pattern/ParseTreePatternMatcher.swift b/runtime/Swift/Sources/Antlr4/tree/pattern/ParseTreePatternMatcher.swift index c5f731a13..ecc9ae1d0 100644 --- a/runtime/Swift/Sources/Antlr4/tree/pattern/ParseTreePatternMatcher.swift +++ b/runtime/Swift/Sources/Antlr4/tree/pattern/ParseTreePatternMatcher.swift @@ -320,7 +320,6 @@ public class ParseTreePatternMatcher { // add special rule token or conjure up new token from name let firstStr = String(tagChunk.getTag()[0]) if firstStr.lowercased() != firstStr { - //if ( Character.isUpperCase(tagChunk.getTag().charAt(0)) ) { let ttype: Int = parser.getTokenType(tagChunk.getTag()) if ttype == CommonToken.INVALID_TYPE { throw ANTLRError.illegalArgument(msg: "Unknown token " + tagChunk.getTag() + " in pattern: " + pattern) @@ -329,7 +328,6 @@ public class ParseTreePatternMatcher { tokens.append(t) } else { if firstStr.uppercased() != firstStr { - // if ( Character.isLowerCase(tagChunk.getTag().charAt(0)) ) { let ruleIndex: Int = parser.getRuleIndex(tagChunk.getTag()) if ruleIndex == -1 { throw ANTLRError.illegalArgument(msg: "Unknown rule " + tagChunk.getTag() + " in pattern: " + pattern) From 365d4f40bbf7c57dbe31de8b806f52dddfdb635c Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 12:26:53 -0700 Subject: [PATCH 42/50] Refactor to avoid forced casts. --- .../Sources/Antlr4/atn/SemanticContext.swift | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift b/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift index 9e0c777b0..413d517be 100644 --- a/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift +++ b/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift @@ -187,15 +187,13 @@ public class SemanticContext: Hashable, CustomStringConvertible { public init(_ a: SemanticContext, _ b: SemanticContext) { var operands: Set = Set() - if a is AND { - operands.formUnion((a as! AND).opnds) - //operands.addAll(Arrays.asList((a as AND).opnds)); + if let aAnd = a as? AND { + operands.formUnion(aAnd.opnds) } else { operands.insert(a) } - if b is AND { - operands.formUnion((b as! AND).opnds) - //operands.addAll(Arrays.asList((b as AND).opnds)); + if let bAnd = b as? AND { + operands.formUnion(bAnd.opnds) } else { operands.insert(b) } @@ -305,15 +303,13 @@ public class SemanticContext: Hashable, CustomStringConvertible { public init(_ a: SemanticContext, _ b: SemanticContext) { var operands: Set = Set() - if a is OR { - operands.formUnion((a as! OR).opnds) - // operands.addAll(Arrays.asList((a as OR).opnds)); + if let aOr = a as? OR { + operands.formUnion(aOr.opnds) } else { operands.insert(a) } - if b is OR { - operands.formUnion((b as! OR).opnds) - //operands.addAll(Arrays.asList((b as OR).opnds)); + if let bOr = b as? OR { + operands.formUnion(bOr.opnds) } else { operands.insert(b) } From 8a292c0f4f8f7a4705330d0015762383dab00744 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 11:54:15 -0700 Subject: [PATCH 43/50] Migrate the Swift runtime to Swift 4. Remove a number of generic type constraints, since these can now be inferred by the compiler. Match the syntax change when passing a tuple into a function (adding an extra set of parens). Change filterPrecedencePredicates to avoid a now-illegal cast. Match the renames truncatingBitPattern -> truncatingIfNeeded, multiplyWithOverflow -> multipliedReportingOverflow, etc. In some cases the multiplyWithOverflow calls are replaced by overflowing operators (e.g. &*) instead. --- .../Sources/Antlr4/ANTLRErrorListener.swift | 12 ++-- .../Sources/Antlr4/BaseErrorListener.swift | 12 ++-- .../Sources/Antlr4/ConsoleErrorListener.swift | 12 ++-- runtime/Swift/Sources/Antlr4/Lexer.swift | 2 +- .../Sources/Antlr4/ProxyErrorListener.swift | 14 ++--- .../Swift/Sources/Antlr4/RuleContext.swift | 4 +- .../Swift/Sources/Antlr4/atn/ATNConfig.swift | 2 +- .../Sources/Antlr4/atn/ATNConfigSet.swift | 5 +- .../Sources/Antlr4/atn/ATNDeserializer.swift | 2 +- .../Antlr4/atn/PredictionContext.swift | 6 +- .../Sources/Antlr4/atn/SemanticContext.swift | 56 ++++++++----------- .../Sources/Antlr4/misc/ArrayWrapper.swift | 2 +- .../Swift/Sources/Antlr4/misc/BitSet.swift | 4 +- .../Swift/Sources/Antlr4/misc/HashMap.swift | 4 +- .../Sources/Antlr4/misc/MurmurHash.swift | 16 +++--- .../misc/extension/StringExtension.swift | 2 +- .../Tests/Antlr4Tests/VisitorTests.swift | 8 +-- 17 files changed, 76 insertions(+), 87 deletions(-) diff --git a/runtime/Swift/Sources/Antlr4/ANTLRErrorListener.swift b/runtime/Swift/Sources/Antlr4/ANTLRErrorListener.swift index c83ee58a3..56d1987f3 100644 --- a/runtime/Swift/Sources/Antlr4/ANTLRErrorListener.swift +++ b/runtime/Swift/Sources/Antlr4/ANTLRErrorListener.swift @@ -39,12 +39,12 @@ public protocol ANTLRErrorListener: class { /// the parser was able to recover in line without exiting the /// surrounding rule. /// - func syntaxError(_ recognizer: Recognizer, - _ offendingSymbol: AnyObject?, - _ line: Int, - _ charPositionInLine: Int, - _ msg: String, - _ e: AnyObject? + func syntaxError(_ recognizer: Recognizer, + _ offendingSymbol: AnyObject?, + _ line: Int, + _ charPositionInLine: Int, + _ msg: String, + _ e: AnyObject? ) /// diff --git a/runtime/Swift/Sources/Antlr4/BaseErrorListener.swift b/runtime/Swift/Sources/Antlr4/BaseErrorListener.swift index 75d3cad8c..9a9805b96 100644 --- a/runtime/Swift/Sources/Antlr4/BaseErrorListener.swift +++ b/runtime/Swift/Sources/Antlr4/BaseErrorListener.swift @@ -17,12 +17,12 @@ open class BaseErrorListener: ANTLRErrorListener { public init() { } - open func syntaxError(_ recognizer: Recognizer, - _ offendingSymbol: AnyObject?, - _ line: Int, - _ charPositionInLine: Int, - _ msg: String, - _ e: AnyObject? + open func syntaxError(_ recognizer: Recognizer, + _ offendingSymbol: AnyObject?, + _ line: Int, + _ charPositionInLine: Int, + _ msg: String, + _ e: AnyObject? ) { } diff --git a/runtime/Swift/Sources/Antlr4/ConsoleErrorListener.swift b/runtime/Swift/Sources/Antlr4/ConsoleErrorListener.swift index 22a76c5f4..de6584c30 100644 --- a/runtime/Swift/Sources/Antlr4/ConsoleErrorListener.swift +++ b/runtime/Swift/Sources/Antlr4/ConsoleErrorListener.swift @@ -25,12 +25,12 @@ public class ConsoleErrorListener: BaseErrorListener { /// line __line__:__charPositionInLine__ __msg__ /// /// - override public func syntaxError(_ recognizer: Recognizer, - _ offendingSymbol: AnyObject?, - _ line: Int, - _ charPositionInLine: Int, - _ msg: String, - _ e: AnyObject? + override public func syntaxError(_ recognizer: Recognizer, + _ offendingSymbol: AnyObject?, + _ line: Int, + _ charPositionInLine: Int, + _ msg: String, + _ e: AnyObject? ) { if Parser.ConsoleError { errPrint("line \(line):\(charPositionInLine) \(msg)") diff --git a/runtime/Swift/Sources/Antlr4/Lexer.swift b/runtime/Swift/Sources/Antlr4/Lexer.swift index a05150db4..a324d321b 100644 --- a/runtime/Swift/Sources/Antlr4/Lexer.swift +++ b/runtime/Swift/Sources/Antlr4/Lexer.swift @@ -405,7 +405,7 @@ open class Lexer: Recognizer } } - open func notifyListeners(_ e: LexerNoViableAltException, recognizer: Recognizer) { + open func notifyListeners(_ e: LexerNoViableAltException, recognizer: Recognizer) { let text: String = _input!.getText(Interval.of(_tokenStartCharIndex, _input!.index())) let msg: String = "token recognition error at: '\(getErrorDisplay(text))'" diff --git a/runtime/Swift/Sources/Antlr4/ProxyErrorListener.swift b/runtime/Swift/Sources/Antlr4/ProxyErrorListener.swift index 481064ff5..5d1d7646c 100644 --- a/runtime/Swift/Sources/Antlr4/ProxyErrorListener.swift +++ b/runtime/Swift/Sources/Antlr4/ProxyErrorListener.swift @@ -20,13 +20,13 @@ public class ProxyErrorListener: ANTLRErrorListener { self.delegates = delegates } - public func syntaxError(_ recognizer: Recognizer, - _ offendingSymbol: AnyObject?, - _ line: Int, - _ charPositionInLine: Int, - _ msg: String, - _ e: AnyObject?) - { + public func syntaxError(_ recognizer: Recognizer, + _ offendingSymbol: AnyObject?, + _ line: Int, + _ charPositionInLine: Int, + _ msg: String, + _ e: AnyObject?) + { for listener: ANTLRErrorListener in delegates { listener.syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e) } diff --git a/runtime/Swift/Sources/Antlr4/RuleContext.swift b/runtime/Swift/Sources/Antlr4/RuleContext.swift index 18dafd571..a05b43257 100644 --- a/runtime/Swift/Sources/Antlr4/RuleContext.swift +++ b/runtime/Swift/Sources/Antlr4/RuleContext.swift @@ -233,7 +233,7 @@ open class RuleContext: RuleNode { return description } - public final func toString(_ recog: Recognizer) -> String { + public final func toString(_ recog: Recognizer) -> String { return toString(recog, ParserRuleContext.EMPTY) } @@ -242,7 +242,7 @@ open class RuleContext: RuleNode { } // recog null unless ParserRuleContext, in which case we use subclass toString(...) - open func toString(_ recog: Recognizer?, _ stop: RuleContext) -> String { + open func toString(_ recog: Recognizer?, _ stop: RuleContext) -> String { let ruleNames: [String]? = recog != nil ? recog!.getRuleNames() : nil let ruleNamesList: Array? = ruleNames ?? nil return toString(ruleNamesList, stop) diff --git a/runtime/Swift/Sources/Antlr4/atn/ATNConfig.swift b/runtime/Swift/Sources/Antlr4/atn/ATNConfig.swift index 1054ef342..75bff30e4 100644 --- a/runtime/Swift/Sources/Antlr4/atn/ATNConfig.swift +++ b/runtime/Swift/Sources/Antlr4/atn/ATNConfig.swift @@ -167,7 +167,7 @@ public class ATNConfig: Hashable, CustomStringConvertible { //return "MyClass \(string)" return toString(nil, true) } - public func toString(_ recog: Recognizer?, _ showAlt: Bool) -> String { + public func toString(_ recog: Recognizer?, _ showAlt: Bool) -> String { let buf: StringBuilder = StringBuilder() buf.append("(") buf.append(state) diff --git a/runtime/Swift/Sources/Antlr4/atn/ATNConfigSet.swift b/runtime/Swift/Sources/Antlr4/atn/ATNConfigSet.swift index 5cac3bffb..803d9c369 100644 --- a/runtime/Swift/Sources/Antlr4/atn/ATNConfigSet.swift +++ b/runtime/Swift/Sources/Antlr4/atn/ATNConfigSet.swift @@ -238,12 +238,9 @@ public class ATNConfigSet: Hashable, CustomStringConvertible { private var configsHashValue: Int { var hashCode = 1 for item in configs { - hashCode = Int.multiplyWithOverflow(3, hashCode).0 - hashCode = Int.addWithOverflow(hashCode, item.hashValue).0 - + hashCode = hashCode &* 3 &+ item.hashValue } return hashCode - } public final var count: Int { diff --git a/runtime/Swift/Sources/Antlr4/atn/ATNDeserializer.swift b/runtime/Swift/Sources/Antlr4/atn/ATNDeserializer.swift index 5d3d25015..7bc3f63fc 100644 --- a/runtime/Swift/Sources/Antlr4/atn/ATNDeserializer.swift +++ b/runtime/Swift/Sources/Antlr4/atn/ATNDeserializer.swift @@ -175,7 +175,7 @@ public class ATNDeserializer { if let s = s as? BlockStartState { let endStateNumber: Int = toInt(data[p]) p += 1 - endStateNumbers.append(s, endStateNumber) + endStateNumbers.append((s, endStateNumber)) } } atn.addState(s) diff --git a/runtime/Swift/Sources/Antlr4/atn/PredictionContext.swift b/runtime/Swift/Sources/Antlr4/atn/PredictionContext.swift index c603b06c6..783a1ab5b 100644 --- a/runtime/Swift/Sources/Antlr4/atn/PredictionContext.swift +++ b/runtime/Swift/Sources/Antlr4/atn/PredictionContext.swift @@ -712,17 +712,17 @@ public class PredictionContext: Hashable, CustomStringConvertible { } } - public func toString(_ recog: Recognizer) -> String { + public func toString(_ recog: Recognizer) -> String { return NSStringFromClass(PredictionContext.self) // return toString(recog, ParserRuleContext.EMPTY); } - public func toStrings(_ recognizer: Recognizer, _ currentState: Int) -> [String] { + public func toStrings(_ recognizer: Recognizer, _ currentState: Int) -> [String] { return toStrings(recognizer, PredictionContext.EMPTY, currentState) } // FROM SAM - public func toStrings(_ recognizer: Recognizer?, _ stop: PredictionContext, _ currentState: Int) -> [String] { + public func toStrings(_ recognizer: Recognizer?, _ stop: PredictionContext, _ currentState: Int) -> [String] { var result: Array = Array() var perm: Int = 0 outer: while true { diff --git a/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift b/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift index 413d517be..4ad0bd935 100644 --- a/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift +++ b/runtime/Swift/Sources/Antlr4/atn/SemanticContext.swift @@ -37,7 +37,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { /// prediction, so we passed in the outer context here in case of context /// dependent predicate evaluation. /// - public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { + public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { RuntimeException(#function + " must be overridden") return false } @@ -58,7 +58,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { /// * A non-`null` _org.antlr.v4.runtime.atn.SemanticContext_: the new simplified /// semantic context after precedence predicates are evaluated. /// - public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { + public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { return self } public var hashValue: Int { @@ -90,7 +90,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { } override - public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { + public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { let localctx: RuleContext? = isCtxDependent ? parserCallStack : nil return try parser.sempred(localctx, ruleIndex, predIndex) } @@ -126,12 +126,12 @@ public class SemanticContext: Hashable, CustomStringConvertible { } override - public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { + public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { return try parser.precpred(parserCallStack, precedence) } override - public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { + public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { if try parser.precpred(parserCallStack, precedence) { return SemanticContext.NONE } else { @@ -198,18 +198,17 @@ public class SemanticContext: Hashable, CustomStringConvertible { operands.insert(b) } - let precedencePredicates: Array = - SemanticContext.filterPrecedencePredicates(&operands) + let precedencePredicates = SemanticContext.filterPrecedencePredicates(&operands) if !precedencePredicates.isEmpty { // interested in the transition with the lowest precedence - let reduced: PrecedencePredicate = precedencePredicates.sorted { + let reduced = precedencePredicates.sorted { $0.precedence < $1.precedence - }.first! //Collections.min(precedencePredicates); - operands.insert(reduced) + } + operands.insert(reduced[0]) } - opnds = Array(operands) //.toArray(new, SemanticContext[operands.size()]); + opnds = Array(operands) } override @@ -234,7 +233,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { /// unordered. /// override - public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { + public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { for opnd: SemanticContext in opnds { if try !opnd.eval(parser, parserCallStack) { return false @@ -244,7 +243,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { } override - public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { + public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { var differs: Bool = false var operands: Array = Array() for context: SemanticContext in opnds { @@ -314,17 +313,17 @@ public class SemanticContext: Hashable, CustomStringConvertible { operands.insert(b) } - let precedencePredicates: Array = SemanticContext.filterPrecedencePredicates(&operands) + let precedencePredicates = SemanticContext.filterPrecedencePredicates(&operands) if !precedencePredicates.isEmpty { // interested in the transition with the highest precedence - let reduced: PrecedencePredicate = precedencePredicates.sorted { + + let reduced = precedencePredicates.sorted { $0.precedence > $1.precedence - }.first! - //var reduced : PrecedencePredicate = Collections.max(precedencePredicates); - operands.insert(reduced) + } + operands.insert(reduced[0]) } - self.opnds = Array(operands) //operands.toArray(new, SemanticContext[operands.size()]); + self.opnds = Array(operands) } override @@ -347,7 +346,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { /// unordered. /// override - public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { + public func eval(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> Bool { for opnd: SemanticContext in opnds { if try opnd.eval(parser, parserCallStack) { return true @@ -357,7 +356,7 @@ public class SemanticContext: Hashable, CustomStringConvertible { } override - public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { + public func evalPrecedence(_ parser: Recognizer, _ parserCallStack: RuleContext) throws -> SemanticContext? { var differs: Bool = false var operands: Array = Array() for context: SemanticContext in opnds { @@ -443,21 +442,14 @@ public class SemanticContext: Hashable, CustomStringConvertible { return result } - private static func filterPrecedencePredicates( - _ collection: inout Set) -> - Array { - - let result = collection.filter { - $0 is PrecedencePredicate + private static func filterPrecedencePredicates(_ collection: inout Set) -> [PrecedencePredicate] { + let result = collection.flatMap { + $0 as? PrecedencePredicate } collection = Set(collection.filter { !($0 is PrecedencePredicate) }) - //if (result == nil) { - //return Array(); - //} - - return (result as! Array) + return result } } diff --git a/runtime/Swift/Sources/Antlr4/misc/ArrayWrapper.swift b/runtime/Swift/Sources/Antlr4/misc/ArrayWrapper.swift index 1ad30758b..5d5a68b88 100644 --- a/runtime/Swift/Sources/Antlr4/misc/ArrayWrapper.swift +++ b/runtime/Swift/Sources/Antlr4/misc/ArrayWrapper.swift @@ -69,7 +69,7 @@ public final class ArrayWrapper: ExpressibleByArrayLiteral, Hashabl } -public func == (lhs: ArrayWrapper, rhs: ArrayWrapper) -> Bool { +public func == (lhs: ArrayWrapper, rhs: ArrayWrapper) -> Bool { if lhs === rhs { return true } diff --git a/runtime/Swift/Sources/Antlr4/misc/BitSet.swift b/runtime/Swift/Sources/Antlr4/misc/BitSet.swift index d2c9b510f..5110ab712 100644 --- a/runtime/Swift/Sources/Antlr4/misc/BitSet.swift +++ b/runtime/Swift/Sources/Antlr4/misc/BitSet.swift @@ -648,12 +648,12 @@ public class BitSet: Hashable, CustomStringConvertible { return 64 } var n: Int32 = 63 - y = Int32(truncatingBitPattern: i) + y = Int32(truncatingIfNeeded: i) if y != 0 { n = n - 32 x = y } else { - x = Int32(truncatingBitPattern: i >>> 32) + x = Int32(truncatingIfNeeded: i >>> 32) } y = x << 16 diff --git a/runtime/Swift/Sources/Antlr4/misc/HashMap.swift b/runtime/Swift/Sources/Antlr4/misc/HashMap.swift index 89aced6a2..0157d8d56 100644 --- a/runtime/Swift/Sources/Antlr4/misc/HashMap.swift +++ b/runtime/Swift/Sources/Antlr4/misc/HashMap.swift @@ -41,7 +41,7 @@ final class Entry: CustomStringConvertible { var description: String { return "\(getKey())=\(getValue())" } } -func == (lhs: Entry, rhs: Entry) -> Bool { +func == (lhs: Entry, rhs: Entry) -> Bool { if lhs === rhs { return true } @@ -52,7 +52,7 @@ func == (lhs: Entry, rhs: Entry) -> Bool { } return false } -func == (lhs: Entry, rhs: Entry) -> Bool { +func == (lhs: Entry, rhs: Entry) -> Bool { if lhs === rhs { return true } diff --git a/runtime/Swift/Sources/Antlr4/misc/MurmurHash.swift b/runtime/Swift/Sources/Antlr4/misc/MurmurHash.swift index 09819e0d0..1bdbcd426 100644 --- a/runtime/Swift/Sources/Antlr4/misc/MurmurHash.swift +++ b/runtime/Swift/Sources/Antlr4/misc/MurmurHash.swift @@ -49,19 +49,19 @@ public final class MurmurHash { let m: Int32 = 5 let n: Int32 = -430675100//0xE6546B64; - var k: Int32 = Int32(truncatingBitPattern: value) - k = Int32.multiplyWithOverflow(k, c1).0 + var k: Int32 = Int32(truncatingIfNeeded: value) + k = k.multipliedReportingOverflow(by: c1).partialValue // (k,_) = UInt32.multiplyWithOverflow(k, c1) ;//( k * c1); //TODO: CHECKE >>> k = (k << r1) | (k >>> (Int32(32) - r1)) //k = (k << r1) | (k >>> (32 - r1)); //k = UInt32 (truncatingBitPattern:Int64(Int64(k) * Int64(c2)));//( k * c2); //(k,_) = UInt32.multiplyWithOverflow(k, c2) - k = Int32.multiplyWithOverflow(k, c2).0 + k = k.multipliedReportingOverflow(by: c2).partialValue var hash = Int32(hashIn) hash = hash ^ k hash = (hash << r2) | (hash >>> (Int32(32) - r2))//hash = (hash << r2) | (hash >>> (32 - r2)); - (hash, _) = Int32.multiplyWithOverflow(hash, m) - (hash, _) = Int32.addWithOverflow(hash, n) + hash = hash.multipliedReportingOverflow(by: m).partialValue + hash = hash.addingReportingOverflow(n).partialValue //hash = hash * m + n; // print("murmur update2 : \(hash)") return Int(hash) @@ -90,12 +90,12 @@ public final class MurmurHash { public static func finish(_ hashin: Int, _ numberOfWordsIn: Int) -> Int { var hash = Int32(hashin) let numberOfWords = Int32(numberOfWordsIn) - hash = hash ^ Int32.multiplyWithOverflow(numberOfWords, Int32(4)).0 //(numberOfWords * UInt32(4)); + hash = hash ^ numberOfWords.multipliedReportingOverflow(by: 4).partialValue //(numberOfWords * UInt32(4)); hash = hash ^ (hash >>> Int32(16)) //hash = hash ^ (hash >>> 16); - (hash, _) = Int32.multiplyWithOverflow(hash, Int32(-2048144789))//hash * UInt32(0x85EBCA6B); + hash = hash.multipliedReportingOverflow(by: -2048144789).partialValue //hash * UInt32(0x85EBCA6B); hash = hash ^ (hash >>> Int32(13))//hash = hash ^ (hash >>> 13); //hash = UInt32(truncatingBitPattern: UInt64(hash) * UInt64(0xC2B2AE35)) ; - (hash, _) = Int32.multiplyWithOverflow(hash, Int32(-1028477387)) + hash = hash.multipliedReportingOverflow(by: -1028477387).partialValue hash = hash ^ (hash >>> Int32(16))// hash = hash ^ (hash >>> 16); //print("murmur finish : \(hash)") return Int(hash) diff --git a/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift b/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift index c50ba7a1e..1928be7f9 100644 --- a/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift +++ b/runtime/Swift/Sources/Antlr4/misc/extension/StringExtension.swift @@ -61,7 +61,7 @@ extension String { let start = characters.index(startIndex, offsetBy: integerRange.lowerBound) let end = characters.index(startIndex, offsetBy: integerRange.upperBound) let range = start ..< end - return self[range] + return String(self[range]) } } diff --git a/runtime/Swift/Tests/Antlr4Tests/VisitorTests.swift b/runtime/Swift/Tests/Antlr4Tests/VisitorTests.swift index e22488797..d7adb1cb6 100644 --- a/runtime/Swift/Tests/Antlr4Tests/VisitorTests.swift +++ b/runtime/Swift/Tests/Antlr4Tests/VisitorTests.swift @@ -62,10 +62,10 @@ class VisitorTests: XCTestCase { var errors = [String]() - override func syntaxError(_ recognizer: Recognizer, - _ offendingSymbol: AnyObject?, - _ line: Int, _ charPositionInLine: Int, - _ msg: String, _ e: AnyObject?) { + override func syntaxError(_ recognizer: Recognizer, + _ offendingSymbol: AnyObject?, + _ line: Int, _ charPositionInLine: Int, + _ msg: String, _ e: AnyObject?) { errors.append("line \(line):\(charPositionInLine) \(msg)") } } From 7aa6b544d973b4929b7123ef79cf014a7d236ab9 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Wed, 27 Sep 2017 11:47:23 -0700 Subject: [PATCH 44/50] Redo Package.swift for Swift Package Manager 4.0. --- runtime/Swift/Package.swift | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/runtime/Swift/Package.swift b/runtime/Swift/Package.swift index 5c2e28b12..0d72a47dd 100644 --- a/runtime/Swift/Package.swift +++ b/runtime/Swift/Package.swift @@ -1,3 +1,4 @@ +// swift-tools-version:4.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. @@ -5,15 +6,19 @@ import PackageDescription let package = Package( - name: "Antlr4" -) - -products.append( - Product( - name: "Antlr4", - type: .Library(.Dynamic), - modules: [ - "Antlr4" - ] - ) + name: "Antlr4", + products: [ + .library( + name: "Antlr4", + type: .dynamic, + targets: ["Antlr4"]), + ], + targets: [ + .target( + name: "Antlr4", + dependencies: []), + .testTarget( + name: "Antlr4Tests", + dependencies: ["Antlr4"]), + ] ) From 39c01f6da7a1ff66814d5bcbe4c0c4aa4068e171 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 15:54:02 -0700 Subject: [PATCH 45/50] Update the Swift tests for Swift Package Manager 4.0. SwiftPM has changed its default layout for new packages (i.e. when we use "swift package init --type executable" during the test). It now is /Sources//main.swift, so we need to adjust the paths appropriately. This includes a small change to print stdout as well as stderr if a unit test fails to build. swift-build-tool takes the compiler subprocess's stderr and puts it on stdout. *sheesh* This meant that we were losing critical error messages. --- .../org/antlr/v4/test/runtime/swift/BaseSwiftTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/runtime-testsuite/test/org/antlr/v4/test/runtime/swift/BaseSwiftTest.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/swift/BaseSwiftTest.java index f6b890931..90dc05245 100644 --- a/runtime-testsuite/test/org/antlr/v4/test/runtime/swift/BaseSwiftTest.java +++ b/runtime-testsuite/test/org/antlr/v4/test/runtime/swift/BaseSwiftTest.java @@ -145,7 +145,7 @@ public class BaseSwiftTest implements RuntimeTestSupport { String projectName = "testcase-" + System.currentTimeMillis(); String projectDir = getTmpDir() + "/" + projectName; - buildProject(projectDir); + buildProject(projectDir, projectName); return execTest(projectDir, projectName); } @@ -183,12 +183,12 @@ public class BaseSwiftTest implements RuntimeTestSupport { Collections.addAll(this.sourceFiles, files); } - private void buildProject(String projectDir) { + private void buildProject(String projectDir, String projectName) { mkdir(projectDir); fastFailRunProcess(projectDir, SWIFT_CMD, "package", "init", "--type", "executable"); for (String sourceFile: sourceFiles) { String absPath = getTmpDir() + "/" + sourceFile; - fastFailRunProcess(getTmpDir(), "mv", "-f", absPath, projectDir + "/Sources/"); + fastFailRunProcess(getTmpDir(), "mv", "-f", absPath, projectDir + "/Sources/" + projectName); } fastFailRunProcess(getTmpDir(), "mv", "-f", "input", projectDir); @@ -201,7 +201,7 @@ public class BaseSwiftTest implements RuntimeTestSupport { "-Xlinker", "-rpath", "-Xlinker", dylibPath); if (buildResult.b.length() > 0) { - throw new RuntimeException("unit test build failed: " + buildResult.b); + throw new RuntimeException("unit test build failed: " + buildResult.a + "\n" + buildResult.b); } } catch (IOException | InterruptedException e) { e.printStackTrace(); @@ -251,7 +251,7 @@ public class BaseSwiftTest implements RuntimeTestSupport { addSourceFiles("main.swift"); String projectName = "testcase-" + System.currentTimeMillis(); String projectDir = getTmpDir() + "/" + projectName; - buildProject(projectDir); + buildProject(projectDir, projectName); return execTest(projectDir, projectName); } From cfb00413287795039ac069e3755fc48130213bbf Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 28 Sep 2017 15:40:35 -0700 Subject: [PATCH 46/50] Switch all the macOS Travis jobs to use the Xcode 9 image. We require Xcode 9 for the Swift target, and the C++ and .NET tests shouldn't care either way. We no longer need to install cmake: this is already in the Travis Xcode 9.0 image (and it barfs if we try to install it again). We no longer need the rvm bug workarounds; a newer version of rvm is in the Xcode 9.0 image so this is no longer a problem. The openssl package is already installed and up-to-date now, so there is no need to install that. These changes mean that we don't need before-install-osx-cpp.sh or before-install-os-swift.sh at all, and before-install-osx-dotnet.sh gets a bit shorter. .travis.yml gets a small change to handle the fact that some platform / target combos don't need before-install any more. --- .travis.yml | 20 ++++++++++---------- .travis/before-install-osx-cpp.sh | 13 ------------- .travis/before-install-osx-dotnet.sh | 10 +--------- .travis/before-install-osx-swift.sh | 12 ------------ 4 files changed, 11 insertions(+), 44 deletions(-) delete mode 100755 .travis/before-install-osx-cpp.sh delete mode 100755 .travis/before-install-osx-swift.sh diff --git a/.travis.yml b/.travis.yml index 131a71a7b..b4e97289c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,42 +67,42 @@ matrix: - clang-3.7 - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=cpp - GROUP=LEXER stage: extended-test - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=cpp - GROUP=PARSER stage: extended-test - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=cpp - GROUP=RECURSION stage: extended-test - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=swift - GROUP=LEXER stage: main-test - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=swift - GROUP=PARSER stage: main-test - os: osx compiler: clang - osx_image: xcode8.1 + osx_image: xcode9 env: - TARGET=swift - GROUP=RECURSION @@ -114,19 +114,19 @@ matrix: - GROUP=ALL stage: extended-test - os: osx - osx_image: xcode8.2 + osx_image: xcode9 env: - TARGET=dotnet - GROUP=LEXER stage: extended-test - os: osx - osx_image: xcode8.2 + osx_image: xcode9 env: - TARGET=dotnet - GROUP=PARSER stage: extended-test - os: osx - osx_image: xcode8.2 + osx_image: xcode9 env: - TARGET=dotnet - GROUP=RECURSION @@ -194,7 +194,7 @@ matrix: stage: main-test before_install: - - ./.travis/before-install-$TRAVIS_OS_NAME-$TARGET.sh + - f="./.travis/before-install-$TRAVIS_OS_NAME-$TARGET.sh"; ! [ -x "$f" ] || "$f" script: - cd runtime-testsuite; travis_wait 40 ../.travis/run-tests-$TARGET.sh diff --git a/.travis/before-install-osx-cpp.sh b/.travis/before-install-osx-cpp.sh deleted file mode 100755 index 48152d221..000000000 --- a/.travis/before-install-osx-cpp.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -thisdir=$(dirname "$0") - -brew update -brew install cmake - -# Work around apparent rvm bug that is in Travis's Xcode image. -# https://github.com/direnv/direnv/issues/210 -# https://github.com/travis-ci/travis-ci/issues/6307 -shell_session_update() { :; } diff --git a/.travis/before-install-osx-dotnet.sh b/.travis/before-install-osx-dotnet.sh index 428016fa6..c784ba091 100755 --- a/.travis/before-install-osx-dotnet.sh +++ b/.travis/before-install-osx-dotnet.sh @@ -4,9 +4,7 @@ set -euo pipefail thisdir=$(dirname "$0") -# pre-requisites for dotnet core -brew update -brew install openssl +# OpenSSL setup for dotnet core mkdir -p /usr/local/lib ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/ @@ -19,9 +17,3 @@ sudo installer -pkg /tmp/dotnet-dev-osx-x64.1.0.4.pkg -target / # make the link ln -s /usr/local/share/dotnet/dotnet /usr/local/bin/ - -# Work around apparent rvm bug that is in Travis's Xcode image. -# https://github.com/direnv/direnv/issues/210 -# https://github.com/travis-ci/travis-ci/issues/6307 -shell_session_update() { :; } - diff --git a/.travis/before-install-osx-swift.sh b/.travis/before-install-osx-swift.sh deleted file mode 100755 index 145a505c6..000000000 --- a/.travis/before-install-osx-swift.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -thisdir=$(dirname "$0") - -brew update - -# Work around apparent rvm bug that is in Travis's Xcode image. -# https://github.com/direnv/direnv/issues/210 -# https://github.com/travis-ci/travis-ci/issues/6307 -shell_session_update() { :; } From 897b4339a38e3072c567c5e6a77a3853e8694844 Mon Sep 17 00:00:00 2001 From: Ewan Mellor Date: Thu, 12 Oct 2017 02:44:25 -0700 Subject: [PATCH 47/50] Switch the Linux Swift tests to Trusty and Swift 4.0. This uses Travis's new(ish) Ubuntu Trusty image, and changes the version number of the Swift binaries that we download. We now install clang-3.6. This is not the default on Trusty, but it's required by the Swift 4.0 toolchain. This also removes the lines to upgrade libicu-dev and sqlite3. These are sufficiently up-to-date in the Trusty image. --- .travis.yml | 1 + .travis/before-install-linux-swift.sh | 6 ++---- .travis/run-tests-swift.sh | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b4e97289c..d9969b6eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -108,6 +108,7 @@ matrix: - GROUP=RECURSION stage: main-test - os: linux + dist: trusty compiler: clang env: - TARGET=swift diff --git a/.travis/before-install-linux-swift.sh b/.travis/before-install-linux-swift.sh index 607f04449..1a2b2a555 100755 --- a/.travis/before-install-linux-swift.sh +++ b/.travis/before-install-linux-swift.sh @@ -1,14 +1,12 @@ set -euo pipefail -# make sure we use trusty repositories (travis by default uses precise) -curl https://repogen.simplylinux.ch/txt/trusty/sources_c4aa56bd26c0f54f391d8fae3e687ef5f6e97c26.txt | sudo tee /etc/apt/sources.list - # install dependencies # some packages below will be update, swift assumes newer versions # of, for example, sqlite3 and libicu, without the update some # tools will not work sudo apt-get update -sudo apt-get install clang libicu-dev libxml2 sqlite3 +sudo apt-get install clang-3.6 libxml2 +sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100 # This would fix a know linker issue mentioned in: # https://bugs.swift.org/browse/SR-2299 diff --git a/.travis/run-tests-swift.sh b/.travis/run-tests-swift.sh index 56d2cec65..8c63070aa 100755 --- a/.travis/run-tests-swift.sh +++ b/.travis/run-tests-swift.sh @@ -4,7 +4,7 @@ # here since environment variables doesn't pass # across scripts if [ $TRAVIS_OS_NAME == "linux" ]; then - export SWIFT_VERSION=swift-3.1.1 + export SWIFT_VERSION=swift-4.0 export SWIFT_HOME=$(pwd)/swift/$SWIFT_VERSION-RELEASE-ubuntu14.04/usr/bin/ export PATH=$SWIFT_HOME:$PATH From 38aaf8809702c3c60335ba85f79cad51fe72e4db Mon Sep 17 00:00:00 2001 From: Terence Parr Date: Sat, 21 Oct 2017 12:00:25 -0700 Subject: [PATCH 48/50] Revert "[Go] Interval" --- runtime/Go/antlr/interval_set.go | 116 +++++--------------------- runtime/Go/antlr/interval_set_test.go | 103 ----------------------- 2 files changed, 23 insertions(+), 196 deletions(-) delete mode 100644 runtime/Go/antlr/interval_set_test.go diff --git a/runtime/Go/antlr/interval_set.go b/runtime/Go/antlr/interval_set.go index 9a2fedf82..510d90911 100644 --- a/runtime/Go/antlr/interval_set.go +++ b/runtime/Go/antlr/interval_set.go @@ -14,9 +14,10 @@ type Interval struct { Stop int } -/* Inclusive interval*/ +/* stop is not included! */ func NewInterval(start, stop int) *Interval { i := new(Interval) + i.Start = start i.Stop = stop return i @@ -26,78 +27,16 @@ func (i *Interval) Contains(item int) bool { return item >= i.Start && item < i.Stop } -// Does this start completely before other? Disjoint -func (i *Interval) StartsBeforeDisjoint(other *Interval) bool{ - return i.Start < other.Start && i.Stop < other.Start -} - -// Does this start at or before other? Nondisjoint -func (i *Interval) StartsBeforeNonDisjoint(other *Interval) bool{ - return i.Start <= other.Start && i.Stop >= other.Start -} - -// Does this.a start after other.b? May or may not be disjoint -func (i *Interval) StartsAfter(other *Interval) bool{ - return i.Start > other.Start -} - -// Does this start completely after other? Disjoint -func (i *Interval) StartsAfterDisjoint(other *Interval) bool{ - return i.Start > other.Stop -} - -// Does this start after other? NonDisjoint -func (i *Interval) StartsAfterNonDisjoint(other *Interval) bool{ - return i.Start>other.Start && i.Start <= other.Stop // i.Stop>=other.Stop implied -} - -// Are both ranges disjoint? I.e., no overlap? -func (i *Interval) Disjoint(other *Interval) bool{ - return i.StartsBeforeDisjoint(other) || i.StartsAfterDisjoint(other) -} - -// Are two intervals adjacent such as 0..41 and 42..42? -func (i *Interval) Adjacent(other *Interval) bool{ - return i.Start == other.Stop+1 || i.Stop == other.Start-1; -} - -func (i *Interval) ProperlyContains(other *Interval) bool{ - return other.Start >= i.Start && other.Stop <= i.Stop -} - -// Return the interval computed from combining this and other -func (i *Interval) Union(other *Interval) *Interval{ - return NewInterval(intMin(i.Start, other.Start), intMax(i.Stop, other.Stop)) -} - -// Return the interval in common between this and other -func (i *Interval) Intersection(other *Interval) *Interval{ - return NewInterval(intMax(i.Start, other.Start), intMin(i.Stop, other.Stop)) -} -// Return the interval with elements from this not in other; -// other must not be totally enclosed (properly contained) -// within this, which would result in two disjoint intervals -// instead of the single one returned by this method. -func (i *Interval) DifferenceNotProperlyContained(other *Interval) *Interval{ - var diff *Interval = nil - if other.StartsBeforeDisjoint(i){ - diff = NewInterval(intMax(i.Start, other.Stop +1), i.Stop) - }else if other.StartsAfterNonDisjoint(i){ - diff = NewInterval(i.Start, other.Start -1) - } - return diff -} - func (i *Interval) String() string { - if i.Start == i.Stop { + if i.Start == i.Stop-1 { return strconv.Itoa(i.Start) } - return strconv.Itoa(i.Start) + ".." + strconv.Itoa(i.Stop) + return strconv.Itoa(i.Start) + ".." + strconv.Itoa(i.Stop-1) } func (i *Interval) length() int { - return intMax(i.Stop - i.Start + 1,0) + return i.Stop - i.Start } type IntervalSet struct { @@ -124,11 +63,11 @@ func (i *IntervalSet) first() int { } func (i *IntervalSet) addOne(v int) { - i.addInterval(NewInterval(v, v)) + i.addInterval(NewInterval(v, v+1)) } func (i *IntervalSet) addRange(l, h int) { - i.addInterval(NewInterval(l, h)) + i.addInterval(NewInterval(l, h+1)) } func (i *IntervalSet) addInterval(v *Interval) { @@ -210,30 +149,31 @@ func (i *IntervalSet) length() int { } func (i *IntervalSet) removeRange(v *Interval) { - if v.Start == v.Stop { + if v.Start == v.Stop-1 { i.removeOne(v.Start) } else if i.intervals != nil { - for k := 0; k < len(i.intervals); k++ { + k := 0 + for n := 0; n < len(i.intervals); n++ { ni := i.intervals[k] // intervals are ordered if v.Stop <= ni.Start { return } else if v.Start > ni.Start && v.Stop < ni.Stop { - i.intervals[k] = NewInterval(ni.Start, v.Start-1) - x := NewInterval(v.Stop+1, ni.Stop) + i.intervals[k] = NewInterval(ni.Start, v.Start) + x := NewInterval(v.Stop, ni.Stop) // i.intervals.splice(k, 0, x) - i.intervals = append(i.intervals[0:k+1], append([]*Interval{x}, i.intervals[k+1:]...)...) + i.intervals = append(i.intervals[0:k], append([]*Interval{x}, i.intervals[k:]...)...) return } else if v.Start <= ni.Start && v.Stop >= ni.Stop { // i.intervals.splice(k, 1) i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...) - k = k - 1 - continue + k = k - 1 // need another pass } else if v.Start < ni.Stop { - i.intervals[k] = NewInterval(ni.Start, v.Start-1) + i.intervals[k] = NewInterval(ni.Start, v.Start) } else if v.Stop < ni.Stop { - i.intervals[k] = NewInterval(v.Stop+1, ni.Stop) + i.intervals[k] = NewInterval(v.Stop, ni.Stop) } + k++ } } } @@ -245,18 +185,18 @@ func (i *IntervalSet) removeOne(v int) { // intervals i ordered if v < ki.Start { return - } else if v == ki.Start && v == ki.Stop { + } else if v == ki.Start && v == ki.Stop-1 { // i.intervals.splice(k, 1) i.intervals = append(i.intervals[0:k], i.intervals[k+1:]...) return } else if v == ki.Start { i.intervals[k] = NewInterval(ki.Start+1, ki.Stop) return - } else if v == ki.Stop { + } else if v == ki.Stop-1 { i.intervals[k] = NewInterval(ki.Start, ki.Stop-1) return - } else if v < ki.Stop { - x := NewInterval(ki.Start, v-1) + } else if v < ki.Stop-1 { + x := NewInterval(ki.Start, v) ki.Start = v + 1 // i.intervals.splice(k, 0, x) i.intervals = append(i.intervals[0:k], append([]*Interval{x}, i.intervals[k:]...)...) @@ -295,14 +235,9 @@ func (i *IntervalSet) toCharString() string { names = append(names, ("'" + string(v.Start) + "'")) } } else { - names = append(names, "'"+string(v.Start)+"'..'"+string(v.Stop)+"'") + names = append(names, "'"+string(v.Start)+"'..'"+string(v.Stop-1)+"'") } } - - if len(names) == 0{ - return "{}" - } - if len(names) > 1 { return "{" + strings.Join(names, ", ") + "}" } @@ -322,14 +257,9 @@ func (i *IntervalSet) toIndexString() string { names = append(names, strconv.Itoa(v.Start)) } } else { - names = append(names, strconv.Itoa(v.Start)+".."+strconv.Itoa(v.Stop)) + names = append(names, strconv.Itoa(v.Start)+".."+strconv.Itoa(v.Stop-1)) } } - - if len(names) == 0{ - return "{}" - } - if len(names) > 1 { return "{" + strings.Join(names, ", ") + "}" } diff --git a/runtime/Go/antlr/interval_set_test.go b/runtime/Go/antlr/interval_set_test.go deleted file mode 100644 index 1b15b7842..000000000 --- a/runtime/Go/antlr/interval_set_test.go +++ /dev/null @@ -1,103 +0,0 @@ -package antlr - -import ( - "testing" -) - -func assertInterval(t *testing.T, i *Interval, l int){ - if i.length() != l{ - t.Errorf("For interval [%s] [%d] length is expected, [%d] is actual", i.String(), l, i.length()) - } -} - -func assertString(t *testing.T, expected string, result string){ - if result != expected{ - t.Errorf("expected: %s, result:%s", result, expected) - } -} - -func TestDefaultIntervalLength(t *testing.T){ - assertInterval(t, NewInterval(0,0), 1) - assertInterval(t, NewInterval(100, 100), 1) - assertInterval(t, NewInterval(200,100),0) -} - -func TestIntervalSetAbsorb(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,20) - s.addRange(11,19) - assertString(t, "10..20", s.toIndexString()) -} - -func TestIntervalSetOverlap(t *testing.T){ - s := NewIntervalSet() - s.addRange(10, 20) - s.addRange(15, 25) - assertString(t, "10..25", s.toIndexString()) -} - -func TestIntervalSetIndependent(t *testing.T) { - s := NewIntervalSet() - s.addRange(10, 20) - s.addRange(30, 40) - assertString(t, "{10..20, 30..40}", s.toIndexString()) -} - -func TestIntervalSetAdjoint(t *testing.T) { - s := NewIntervalSet() - s.addRange(10,20) - s.addRange(20, 30) - assertString(t, "10..30", s.toIndexString()) -} - -func TestIntervalSetBridge(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,20) - s.addRange(30,40) - s.addRange(20,30) - assertString(t, "10..40", s.toIndexString()) -} - -func TestIntervalSetBreak(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,40) - s.removeOne(25) - assertString(t, "{10..24, 26..40}", s.toIndexString()) -} - -func TestIntervalSetRemoveStart(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,40) - s.removeOne(10) - assertString(t, "11..40", s.toIndexString()) -} - -func TestIntervalSetRemoveEnd(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,40) - s.removeOne(40) - assertString(t, "10..39", s.toIndexString()) -} - -func TestIntervalSetRemoveSinglePoint(t *testing.T){ - s := NewIntervalSet() - s.addOne(10) - s.addRange(100,200) - s.removeOne(10) - assertString(t, "100..200", s.toIndexString()) -} - -func TestIntervalSetRemoveRangeMid(t *testing.T) { - s := NewIntervalSet() - s.addRange(10,30) - s.removeRange(NewInterval(15,20)) - assertString(t, "{10..14, 21..30}", s.toIndexString()) -} - -func TestIntervalSetRemoveEverything(t *testing.T){ - s := NewIntervalSet() - s.addRange(10,20) - s.addRange(30,40) - s.removeRange(NewInterval(5, 50)) - assertString(t, "{}", s.toIndexString()) -} \ No newline at end of file From 0dce38109cfef0931ac254fa02da67d6a13e46ff Mon Sep 17 00:00:00 2001 From: Hanzhou Shi Date: Sat, 21 Oct 2017 12:28:09 -0700 Subject: [PATCH 49/50] Update boot.py and swift-target.md to reflect Swift 4 migration changes. --- doc/images/gen_spm_module.png | Bin 0 -> 388499 bytes doc/swift-target.md | 60 +++++++++++++++++++++++++++------- runtime/Swift/boot.py | 8 +++-- 3 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 doc/images/gen_spm_module.png diff --git a/doc/images/gen_spm_module.png b/doc/images/gen_spm_module.png new file mode 100644 index 0000000000000000000000000000000000000000..0798c37b68f8dffdd543a726cda4c9abd2055f6d GIT binary patch literal 388499 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

HEV!T8dH7?*>zA%imo^{G2KID1&U&>>=5)37 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°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
  • xpAGeRGkyu^?_4S;cE;4a}0&$Ikg&)}B>+TsCCt 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�N6YfM zr$7Cz!kedc@m_sT4CYQWyLjPNR-RB(Qdjcls8zi;mJWUx2B#wtTxHP*J{l^W{~`s7 zPy*tSX|yMrzi03HGko;-2p(tK?m&G!4drS}wvvjl+2!)w)7{rB6XUUr#{1UuGjl|2 zkIaO%6dsoSkrbBKk(89l*1Yjw#8X(uhzh9p*->OCR@c~eV8@-8s;GBD?URVdok!aT z1ez)Fw!8;JB^vW|b78frw7**t_Y-k;y%5X4`@-fMU+cN;TrVrk2MN?jyO_TVJYH|1 zqK4e19mqUhM*(A>e`ZKeEyD*8`lO#W@dQhJWh)O(KV8(Q7w6hCdpuO_wP~6~k!wAD z+ur=H>ZOO5q{+ipkYQX>V)VRf^W`pZ+YR~BY@n23Y>-DLWQ)UI2lqO_+Y6Za%R_Pr zy#no*buC_!HGbVN*Ls_5z7%qR5nRc#`*-4}6KTwS%@_DXnW+N3crl7=rDmgcz)PbR z%$FUp5TVW5cV_#vq6x*%<0~(<*2|q^o1nP+B`4o3kd=;?l*C@r_qA}LsAP~+K?{xp z+mIjLU4ab*S8VyXX|M%jQzW5ThUJpMG5h21-BR{f?)k62qj?w@QLfh7{q_av>m$c2 zD?f)<$GT6|V;pXbhk1S5xFn=hEyS(S2ba;;_BtB-!L9Di;{=<`YCr`V{hf^3tL#z! z&Mms>^*@IR#jlhfi|#Z>I4Fa!k$=6k`;Mo2+cWOSY3z^FC-raC5A0s zx7Ev1M)5Mtxh6E4vm86B0GgFD85hCBMf9j%#4S(XKi@`eMDRj3-$x(+WB$_*IWvYswU8fd z(2cM$e$Cb@Sq)xTBm|`L@$!OS`c8 z6g&!MCu0(7LIeSA2C7mPGa^cRgLtpksO_Nh8~qf%k_z;1wQAOlaiy}AW9`o8Q25p(2mq3 z%TI6$qU;+h<&~8#2JkYDF@W=s@QHo!GxP{}Mc{xwb%wEHpeC^-KIhpc%ciL5MksPT zqL3Ey7Q}0}Gr=d~3+SRV;#1@ZcoX=gk^%&(w5H*<{0rpbAJ3NIgHdWhzsfkiy|;v1 zF{*6|56E|U3Gx^O2EM-T#FC8HC{2Y(12p;hMSuvO!xepdY%y1aIFUvyQVSmu4jYf3 zQL>T4hNb1uwn?8Y)BZ*k%JAaum=AEiQ7=^$by9QWgdE-r+(G#ns*#{ASc{*R@==E>0&Bg**&X*!>{l?D^W2;tM>hT*X!!vG5y z12-S}d8Q;pyi*TjC*T6a>Wos490Uxo#rz#|1-4P0XWR-f!~@Ry%O(~kX;4HSdBPLv zWM_<*8=}pE}w#dbmhZ72>${)7;m6l_P~T_-a>lAen7u7nMT=p$1AdOwZ&~|v1O)l zT*hpY_>I^cIT)0di$vMmBrKf+f!d{r;k58H^O_xPimrL1_o z%w2?2ljI9Pw0<9b=nZ-Hzpy#)=%9mrq=p;pwxH-VxJ5?D)&El}ePaBplQ;g?8d4vE@AF*7xz?h%sNKnZFKE;xWLs~xh)ML~JA1&3ZSQ2?ZeEuRn8YNozYyDw< z4gXPp9?PviTW(t`>&gPc@}`9V$E!F8qms(yRcp|u;>=HkqKv>aYT!Yq#$#|;LZmjF zCy_UHTp1zn`{hXK!}##CeN?S%{?uxDZEt{_xRtkXkGP^#29JTV)Zm_&*EN_8oYQ5e zWaBfCJsB|Dwh=XI-yyv5k5Nk>nviPqX?$%+JbxbCl|_(w>kK?1EY`tw<$E5U67|mp zf0TcX3|cY`vg>PDSF(TB{KM&arE#4dBpK9@M5MOl(V~dsOyFUZpvdS9$O%5qo?kZg z@Yg03B?sOaH*Gk~m)ap1>mk3vOUurr9YnSW!z|^`Um~NiPlGbSD}&q7871jx<9C1{ z@Qq^Tbp&u4$9km%XoPm#HZwYwDmv5ujmG*5a$Byyx}%+P{Z)-yN{^sz>$s~n;i5Lm zvU7*VEWQFMo(3g6yfD|bXOq;Nf?V`)xl||~S4xC8{6cn3`btcQTMDFP2IR?*1^4Ki zk=oPsQggCKj%=**=_9_jG3A^qGLJFg!B35AA_X5IF2>XEk{P(*p?`Pj(W8shRbYJz z+4kW*R?cha4{$U=ZXZuTKZ8h~x@KKAea9p4%%lZ~!fA!l2a3>LyLXYsQw>siv_{Gu zJyF>N^s`o{m0#g>;2D5&@6$yZPGilD!*Yi<`j-GT|7t6-!#S_JQdQk-TPFUKk8P2i z#pC1x&g;VT(b$hZuvwn@S+3Hh;yf4ZWIi*QBDv__rpd^meqSXS2c?5@v2Ehql=q$s zob4PMSPw6`s&~YHEt?aMz9D5L;``^r zdtBe30I=Tb-yZ}96`UB2W4jY5%R&xpLc{H=cv0#CPSWCg#B2K!KeX-PR&cUsYx0tG4?>7d2;({ z$TKTUcxUswz0Ar?pC~tct61y^MQkX)x=P5|*2!*sh4gD)Lz@s`9DcuT{x~?ma-{L) z*IYY280-uC{ApcKAB(e4mSCPRBA6#IT;r;(el_d&$-`gT&Cj<@GaOL9g*K!6@)Mc+ z-9<8G5?)Yr^JCh7X#I(1vXB#`dC>rVheq?3mam3g2jzj={P;$=eDE4J=Q|4{{-|Hw z&I9sb0uRI5YgFE=cr>r!xz#^S6|(8Mf5r7+T+UB8E%$kD9!@{a z%Q4KupUF25kE178^QJW`%(6>2o&T&B7N@$Zv9V6&w7)`RDr(eUaLl`gq7}gr3 z_N_A^f0MlBcNk7SPoC&ra5g0K4$&G(MP`WxiCa@6;-XqsFyeXezmOIfLp8~7+P{Av^PW32<4Y+tnv%JbMx;f6AT}I z>zqI+4G(sVLE~kd&}18%q;m5~dG+tN3eU`j_=_(dDuagil->}IckfF6H%VikzA|os z3cW3+x4MHJjT;LVCvGf2PUO(No8&hSRK)TW=DlUNt#gd$T`fZ;V}!LV4Ug6hwM9zg zy^lr6Z;;b_>!GXHUHT5R_iSfTw)_9} zWqIMbIIjNlhf3)b93B|lO`6aiEB2g{O-~$&Me=mVygTH>;QBYg)! z$*H;?H(Z>OH=a0V$~cVCg@J|)wR(>WC9cqE8U zL&Yc&T+4Nf9FNdMjzl`G__UzyK#-G$%|w)yoN#zF8;I~}6XZH}q->GCXbse)emDc$@)4=5MjIaY>@ zpwbP)EVi_H%l5CmBCA(fc$T@rgZQM^f#s6od?MQOm1%?^okK~)`S4lvK9LcBj`i0E z66JzSo_u19Y^WcZ8-|3+pWH4_{UAOcHt8#G03YQa0d&U|hb*;?dk@P4e;o)VI37gGXKNbz2l;27D_N6U2~ zss}_EB+a~O8F76vQr8zXSYP0v^rpvgaKcsgF#i$00GCId@bsBz#+92tLmP-y1w*Yr zNjX8|z9aIWt3MH4NJ;b7fBrBTF$K4Za@~Y{RqQ<_n;$=FXwf)oTLJ?tiL4|()7x`Y zE_t#WB8kO4i*j^0BDzgEHpvLeQE=eGWzKXuO?!`EBYRsaF&2K9yzlWbxpJgTt-QK) zjgcb}IN(YuuCQLkB1C!2pFh%J6ej^#G|$a{2HN@0={HX|JO8ouvPc$vd%O%Ag#&~= zkPe1kCd(($&V$mwue(@RqJLf$ZLrxfI!15oBgl1FZm~G{NXes?4Q(2w!D1|sMc>7I z9^*+Dj3<0|p`oTh&Om|5&gcE17XzH~{F&DyT&;|vD_^tqcy|3z zxvc!u8+Hx}E}MD-hSDy?`fE`O>#v>n?Zo=aDq%4JRrEG^@J%90ubm|4Up-Lz4a~zc z+%{bC+A&#w$4+?@{AIZ^rq~i0JqvKb2XuWQ5;SZx`6nJ2OF!Mf!16j=VarP^ zy=xgISC5rh@53#@L%U}2W+w3D@Go0`vLW8B8bD2I%hVX$gKa;*64s}7)%*iLW zVqRy*$3)OM_o=)!@?IVHluDLcUA>&%*B}|ld;1JPUk{T{-m745+a1q=)b$0DX|5hJ z>`AOIOhZK6WF01zTK<_#0pw#-rIh0-7Ut{;8fzdQ+ju~p`ubi*O@%iB?fB93i^=H{{47qt`s@(77vy}TC?UZr}^V*!7^5^$HJkjnqB_cLq zzsbs<69MPiXFhpmQ2(_2Ea};74dj`dey~xtZq6B-&Y9d%QJZo$zFZg4Z{%#Rxj9nU z{)0F!2Wj>GoXOnVgtW*3EkD|rp~;nKr>XK5DBsw9;W)}TyzT!}=LrDIU|+Zb`@-k- z?-9)t1d66_e(z;j{=A)fX&todQ@l2y@&xP)Z+fBaPOVXcKhK!S*FR!Sr`OgPWf5w^p9o#rRG1v%)UwvmOYX3QOWm4z{UJ@;^f#Ow3Hk}$v393nHr#Da=G*=>%Jw@}$m%tA z+)+LR5!&rkoV00j>ksF4ocB(N&3la;iTlD|+XtBVg@x_BouLbCNXW8|`zg{)DuV zdD?z?uqUoS%yH0<7w06S&rza69xH#9ROPeAq5uC)eAax^Zp-{x`S?d|TVXFpDa=0F zpr}0=6Edw>Je{@uiz{U{1k&`gjP(thjEXbevaV>^OnL7Ic}t}(QduB&@RlnnQlkEEX3V8)e4W*bk8btv&nKSV!Ps{R~H^`fgCn0YvR+|UKIRZE? zdcReqRzHoW-$|R{nd(Yed;4p$)!imz{FJB8W?j!t9V<87ISl-;Wkh=F(ZP1ciASY7 zX_NlQT!a(nx1)TNR>%Kx+@$@~J%^(D6~#YmN063-&GpGe+M2mrh$mSlv&;?Q-D31J z&Y72X$z$K5N`2fU;aSHoyLYM-_qDg(F*f5g96Tn^e8N7PrWmwNC2goh%RBF#Aw&Dx z+z`I0{xHNuy?3U>HL(-DWM?Tu}&}6+e&;xsymcLJkWjgDQ3vt70{K+rY zlYH&nL$~CzDTnFDAo2zvmS!Uc(9B13xCoX9AHCTmY~8lEK{4+{7uNTwUzsnn=5@2} zJ{S*qc;&&*?25%@a>g`AQyzLE(4f7I`_yci|L*vvjrKK+@7)z-{#zxn`h#l(W%>2% zWnWN6wrq08FHOmmSxOdDyi)6p;z`;`_`G?{8xUYjA`61f#%b#Il8JKT=LQSZC4)Xg z

    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 e>bWQJE7Bi1`WFS?tNh0R0000 -### Edit the build settings if necessary +#### Edit the build settings if necessary Swift Package Manager currently does not support iOS, watchOS, or tvOS. If you wish to build for those platforms, you will need to alter the project build settings manually. -### Add generated parser and lexer to project +#### Add generated parser and lexer to project Make sure the parsers/lexers generated in __step 2__ are added to the project. To do this, you can @@ -92,7 +104,7 @@ are correct for your project. -### Add the ANTLR Swift runtime as a dependency +#### Add the ANTLR Swift runtime as a dependency Select your own project in Xcode and go to the Build Phases settings panel. Add the ANTLR runtime under __Target Dependencies__ and __Link Binary With @@ -100,6 +112,32 @@ Libraries__. -### Build your project +#### Build your project The runtime and generated grammar should now build correctly. + +### Swift Package Manager Projects + +Since we cannot have a separate repository for Swift target (see issue [#1774](https://github.com/antlr/antlr4/issues/1774)), +and Swift is currently not ABI stable. We currently support support SPM-based +projects by creating temporary local repository. + +For people using [Swift Package Manager](https://swift.org/package-manager/), +the __boot.py__ script supports generating local repository that can be used +as a dependency to your project. Simply run: + +``` +python boot.py --gen-spm-module +``` + +The prompt will show something like below: + + + +Put the SPM directive that contains the url to temporary repository to your +project's Package.swift. And run `swift build` in your project. + +The project is generated in your system's `/tmp/` directory, if you find it +inconvenient, consider copy that generated ANTLR repository to some place +that won't be cleaned automatically and update `url` parameter in your +`Package.swift` file. diff --git a/runtime/Swift/boot.py b/runtime/Swift/boot.py index b362224de..ff82c9e00 100755 --- a/runtime/Swift/boot.py +++ b/runtime/Swift/boot.py @@ -110,7 +110,7 @@ def get_argument_parser(): "Use this command if you want to include ANTLR4 as SPM dependency.", ) p.add_argument("--gen-xcodeproj", action="store_true", - help=" Generates an Xcode project for ANTLR4 Swift runtime. " + help=" Generates an Xcode project for ANTLR4 Swift runtime. " "This directive will generate all the required parsers for the project. " "Feel free to re-run whenever you updated the test grammar files.") p.add_argument("--test", @@ -147,7 +147,11 @@ def generate_spm_module(in_folder=TMP_FOLDER): call(["git", "tag", "{}.0.0".format(MAJOR_VERSION)]) antlr_says("Created local repository.") - antlr_says("Put .Package(url: \"{}\", majorVersion: {}) in Package.swift.".format(os.getcwd(), MAJOR_VERSION)) + antlr_says("(swift-tools-version:3.0) " + "Put .Package(url: \"{}\", majorVersion: {}) in Package.swift.".format(os.getcwd(), MAJOR_VERSION)) + antlr_says("(swift-tools-wersion:4.0) " + "Put .package(url: \"{}\", from: \"{}.0.0\") in Package.swift " + "and add \"Antlr4\" to target dependencies. ".format(os.getcwd(), MAJOR_VERSION)) def generate_xcodeproj(): From 0839970e008df9ba7080fbdec80cd1803bd3538a Mon Sep 17 00:00:00 2001 From: Terence Parr Date: Sat, 21 Oct 2017 12:55:16 -0700 Subject: [PATCH 50/50] Revert "CMake build fixes for Visual Studio" --- runtime/Cpp/CMakeLists.txt | 10 ++-------- runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake | 2 -- runtime/Cpp/demo/CMakeLists.txt | 8 +------- runtime/Cpp/runtime/CMakeLists.txt | 10 +--------- 4 files changed, 4 insertions(+), 26 deletions(-) diff --git a/runtime/Cpp/CMakeLists.txt b/runtime/Cpp/CMakeLists.txt index 2f70bc83f..07ef35e69 100644 --- a/runtime/Cpp/CMakeLists.txt +++ b/runtime/Cpp/CMakeLists.txt @@ -25,8 +25,7 @@ project(LIBANTLR4) if(CMAKE_VERSION VERSION_EQUAL "3.0.0" OR CMAKE_VERSION VERSION_GREATER "3.0.0") - CMAKE_POLICY(SET CMP0026 NEW) - CMAKE_POLICY(SET CMP0054 OLD) + CMAKE_POLICY(SET CMP0026 OLD) CMAKE_POLICY(SET CMP0045 OLD) CMAKE_POLICY(SET CMP0042 OLD) endif() @@ -63,9 +62,7 @@ if (WITH_DEMO) endif() endif(WITH_DEMO) -if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(MY_CXX_WARNING_FLAGS " -Wall -pedantic -W") -endif () +set(MY_CXX_WARNING_FLAGS " -Wall -pedantic -W") # Initialize CXXFLAGS. if("${CMAKE_VERSION}" VERSION_GREATER 3.1.0) @@ -79,13 +76,11 @@ else() set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -std=c++11") endif() -if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG ${MY_CXX_WARNING_FLAGS}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG ${MY_CXX_WARNING_FLGAS}") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g ${MY_CXX_WARNING_FLAGS}") -endif () # Compiler-specific C++11 activation. if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -107,7 +102,6 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_SYSTEM_NAME MATCHES if (WITH_LIBCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() -elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") else () message(FATAL_ERROR "Your C++ compiler does not support C++11.") endif () diff --git a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake index a77c09307..e1c28821a 100644 --- a/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake +++ b/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake @@ -206,13 +206,11 @@ macro(antlr4cpp_process_grammar # export generated cpp files into list foreach(generated_file ${generated_files}) list(APPEND antlr4cpp_src_files_${antlr4cpp_project_namespace} ${generated_file}) - if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set_source_files_properties( ${generated_file} PROPERTIES COMPILE_FLAGS -Wno-overloaded-virtual ) - endif () endforeach(generated_file) message(STATUS "Antlr4Cpp ${antlr4cpp_project_namespace} Generated: ${generated_files}") diff --git a/runtime/Cpp/demo/CMakeLists.txt b/runtime/Cpp/demo/CMakeLists.txt index 53e45fe40..a91c40ddc 100644 --- a/runtime/Cpp/demo/CMakeLists.txt +++ b/runtime/Cpp/demo/CMakeLists.txt @@ -45,17 +45,11 @@ set(antlr4-demo_SRC ${antlr4-demo-GENERATED_SRC} ) -if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set (flags_1 "-Wno-overloaded-virtual") -else() - set (flags_1 "-MP /wd4251") -endif() - foreach( src_file ${antlr4-demo_SRC} ) set_source_files_properties( ${src_file} PROPERTIES - COMPILE_FLAGS "${COMPILE_FLAGS} ${flags_1}" + COMPILE_FLAGS -Wno-overloaded-virtual ) endforeach( src_file ${antlr4-demo_SRC} ) diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt index c51d7f310..b2a4fbd02 100644 --- a/runtime/Cpp/runtime/CMakeLists.txt +++ b/runtime/Cpp/runtime/CMakeLists.txt @@ -44,10 +44,7 @@ elseif(APPLE) target_link_libraries(antlr4_static ${COREFOUNDATION_LIBRARY}) endif() -if (NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(disabled_compile_warnings "-Wno-overloaded-virtual") -endif () - +set(disabled_compile_warnings "-Wno-overloaded-virtual") if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(disabled_compile_warnings "${disabled_compile_warnings} -Wno-dollar-in-identifier-extension -Wno-four-char-constants") elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") @@ -61,11 +58,6 @@ if (WIN32) set(extra_static_compile_flags "-DANTLR4CPP_STATIC") endif(WIN32) -if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(extra_share_compile_flags "-DANTLR4CPP_EXPORTS -MP /wd4251") - set(extra_static_compile_flags "-DANTLR4CPP_STATIC -MP") -endif() - set_target_properties(antlr4_shared PROPERTIES VERSION ${ANTLR_VERSION} SOVERSION ${ANTLR_VERSION}