Commit Graph

3084 Commits

Author SHA1 Message Date
Nathan Burles 254b144bf2 Add AntlrInputStream(std::string_view) constructor
Guarded by the __cplusplus macro so it is only available in C++17 or
newer.
2020-06-15 12:11:44 +01:00
Nathan Burles a1d2d47da8 Avoid defining static const members in headers
Defining a static const member in a header breaks ODR, as the object will be
defined in every translation unit that includes the header.

Instead, the members should either be declared `inline` (which is
implicitly the case for `constexpr` members) or initialized in a cpp.
Alternatively, using an anonymous enum allows the definition to remain
inside the header meaning that the compiler can still choose to inline
values.
2020-06-15 08:40:57 +01:00
irabeson 3c0dbd83dd [C++ runtime] Optimizations of Vocabulary::fromTokenNames
This commit doesn't change the behavior, it contains few small improvements:
- prevent useless copy when creating the variable tokenName
- avoid to check if tokenName is empty twice
- use std::string::empty() instead of creating an empty string to compare with
- use std::string::clear() instead of assigning an empty C string to clear a string
2020-06-04 23:25:12 -04:00
Kilian Kilger 88dffba62e Improve coding style of auto usages 2020-06-03 20:48:19 +02:00
Larry Li 150ecabfff Add docs for Dart target 2020-05-31 00:35:07 +10:00
Larry Li 2cb1618009 fix: run dart analyzer against google pedantic 2020-05-29 11:08:55 +10:00
Larry Li 62d56d83ae Merge branch 'master' of github.com:antlr/antlr4 into dart-clean 2020-05-25 21:01:46 +10:00
Erik Gomersbach 52f7b0063c Added missing swift version of the ParseTreeProperty class 2020-05-10 22:17:30 +02:00
Tristan Swadell 69ba58ecbe Thread-safe ANTLR Go codegen 2020-05-01 01:57:54 -07:00
Terence Parr 8c50731894
Merge pull request #2772 from carocad/cyclic-import
Javascript: fix some cyclic dependencies
2020-04-17 09:03:54 -07:00
Denis Kyashif 1cb069d10f refactored AntlrInputStream.cs by removing a redundand if-statement
signed contributors.txt
2020-04-08 18:24:58 +03:00
Camilo Roca 26715ec6df fix: cyclic dependency between RuleContext.js, Trees.js and ParserRuleContext.js
check for RuleNode instead of RuleContext since that it the only implementation (RuleNode -> RuleContext -> ParserRuleContext)
2020-03-26 21:48:20 +01:00
Terence Parr a4c66dc863
Merge pull request #2787 from carocad/root-es6
Javascript: migrate prototypical root modules to ES6
2020-03-26 10:33:27 -07:00
Camilo Roca 57b65a1c92 fix: assignment to constant var 2020-03-20 13:36:56 +01:00
Song Yang 0b980e93b3 Change to c++ block comments 2020-03-18 15:10:45 -04:00
Song Yang 575271020f Copy documentation to all non-Java languages 2020-03-17 16:03:29 -04:00
Song Yang d832f90a70 Correct doc on exitRule 2020-03-16 00:16:03 -04:00
Song Yang aa9a51a334 Add documentation to ParseTreeWalker 2020-03-15 23:45:40 -04:00
Camilo Roca dadd69ef97 refactored Utils.js to use es6 classes
use const/let for better scoping
use jsdoc
2020-03-16 00:24:56 +01:00
Camilo Roca 5b607b34ba refactored Token.js to use es6 classes
use const/let for better scoping
use jsdoc
2020-03-16 00:16:11 +01:00
Camilo Roca 5baa2326ad refactored PredictionContext.js to use es6 classes
use const/let for better scoping
use jsdoc
2020-03-16 00:08:55 +01:00
Camilo Roca ee9474b194 refactored RuleContext.js to use es6 classes
refactored ParserRuleContext.js to use es6 classes
fix: dont wrap export in object
use const/let for better scoping
use jsdoc
2020-03-15 23:55:05 +01:00
Camilo Roca 4de9e80109 refactored Parser.js to use es6 classes
fix: dont wrap export in object
use const/let for better scoping
use jsdoc
2020-03-15 23:38:44 +01:00
Camilo Roca 94ee7cfbf9 refactored LL1Analyzer.js to use es6 classes
fix: dont wrap export in object
use const/let for better scoping
use jsdoc
2020-03-15 23:21:44 +01:00
Camilo Roca ba6b0807c9 todo added due to code warning 2020-03-15 23:14:37 +01:00
Camilo Roca fd8548acab fix: dont return this on constructor 2020-03-15 23:14:11 +01:00
Camilo Roca 24ae4274a0 refactored Recognizer.js to use es6 classes
refactored Lexer.js to use es6 classes
fix: dont wrap class in object for exporting
use const/let for better scoping
use jsdoc
2020-03-15 22:46:08 +01:00
Camilo Roca a3c380d7d4 refactored IntervalSet.js to use es6 classes
use const/let for better scoping
2020-03-15 16:29:28 +01:00
Camilo Roca 23351cadc4 refactored InputStream.js to use es6 classes
refactored FileStream.js to use es6 classes
fix: dont wrap class in an object for export
use const for better scoping
use jsdoc
2020-03-15 16:25:30 +01:00
Camilo Roca 181c44fb11 refactored CommonTokenStream.js to use es6 classes
fix: dont wrap class in an object for export
fix: annotate adjustSeekIndex with Number type to avoid warning
use const for better scoping
use jsdoc
2020-03-15 16:10:50 +01:00
Camilo Roca 5f6b7de72d fix: remove unnecessary return statements 2020-03-15 16:04:28 +01:00
Camilo Roca b2473f7564 refactored CommonTokenFactory.js to use es6 classes
fix: dont wrap class in an object for export
use const for better scoping
use jsdoc
2020-03-15 16:03:41 +01:00
Camilo Roca 2e139f8d08 fix: dont wrap class in an object for export
use jsdoc
2020-03-15 15:59:09 +01:00
Camilo Roca 4752ecf521 refactored BufferedTokenStream.js to use es6 classes
fix: dont wrap class in an object for export
use const/let for better scoping
use jsdoc
2020-03-15 15:55:15 +01:00
Camilo Roca 2988f32c3c fix: invalid object destructuring 2020-03-07 14:03:59 +01:00
Camilo Roca 51bcf5ffad refactored import statements to use object destructuring and avoid repetition 2020-03-07 13:59:30 +01:00
Camilo Roca ae8602a463 refactored Transition.js to use es6 classes
use const for better scoping
2020-03-07 13:45:54 +01:00
Camilo Roca 6a38ae5e3d fix: no need for return on constructor 2020-03-07 13:38:30 +01:00
Camilo Roca 6ebe0d1317 refactored SemanticContext.js.js to use es6 classes
use const/let for better scoping
use object destructuring
use jsdoc
2020-03-07 13:35:30 +01:00
Camilo Roca 21538ebb59 refactored PredictionMode.js to use es6 classes
use const/let for better scoping
use object destructuring
fix: dont wrap class in object for export
2020-03-07 13:16:42 +01:00
Camilo Roca 7f271a1fc0 refactored ParserATNSimulator.js to use es6 classes
use const/let for better scoping
use object destructuring
fix: dont wrap class in object for export
2020-03-06 22:38:11 +01:00
Camilo Roca d1dce9e700 refactored LexerATNSimulator.js to use es6 classes
use const/let for better scoping
fix: dont wrap class in object for export
2020-03-06 22:12:49 +01:00
Camilo Roca 9aeac6d4f4 refactored LexerActionExecutor.js to use es6 classes
use const for better scoping
fix: dont wrap class in object for export
2020-03-06 20:05:05 +01:00
Camilo Roca 01c5dca26a refactored ATNSimulator.js to use es6 classes
use const for better scoping
fix: dont wrap class in object for export
2020-03-06 19:54:10 +01:00
Camilo Roca 43f896d6dc use const/let for better variable scoping 2020-03-06 19:49:10 +01:00
Camilo Roca 4f8527e9ee refactored ATNDeserializer.js to use es6 classes
fix: dont wrap the class in an object for export
2020-03-06 19:33:38 +01:00
Camilo Roca d61e4d5049 refactored LexerAction.js to use es 6 classes
use jsdoc
use module.exports
2020-03-06 19:29:23 +01:00
Camilo Roca 44331c067e refactored ATNType.js to be a simple object with static definitions 2020-03-06 19:14:24 +01:00
Camilo Roca 78afe57b7d refactored ATNState.js to es 6 classes
use module.exports
use jsdoc
2020-03-06 19:12:09 +01:00
Camilo Roca 430b7c1917 refactored ATNDeserializationOptions.js to es 6 classes
fix: dont wrap class in an object
refactored imports accordingly
2020-03-06 18:59:59 +01:00
Camilo Roca 7324e094b1 refactored ATNConfigSet.js to use es 6 classes
use module.exports
use const/let
use jsdoc
2020-03-06 18:46:34 +01:00
Camilo Roca 2246528ca6 use module.exports
fix: put the documentation on the method, not on the import
fix: move Token import to the top
2020-03-06 18:36:33 +01:00
Camilo Roca 1b440d364a use jsdoc and const/let 2020-03-06 18:33:37 +01:00
Camilo Roca 8f1b2e5eb9 use jsdoc and const/let 2020-03-06 18:24:57 +01:00
Camilo Roca 15720d1e33 use jsdoc and const/let 2020-03-06 18:18:49 +01:00
Camilo Roca e7b935e7e2 refactored ATN to be an es6 class 2020-03-06 18:10:34 +01:00
Terence Parr 225249fdae
Merge pull request #2761 from carocad/browser-support
Javascript: browser support increased with babel transformation
2020-02-25 09:35:36 -08:00
Camilo Roca 10bbcb9033 browser support increased with babel transformation 2020-02-23 19:09:26 +01:00
Camilo Roca d95b3270c4 workaround current cyclic dependency on nodejs 2020-02-23 14:12:08 +01:00
Camilo Roca 5885aa4705 fix: RuleContext no longer needs object destructuring import 2020-02-23 13:09:36 +01:00
Camilo Roca 46ceb654f7 removed commented out call 2020-02-23 13:09:36 +01:00
Camilo Roca 1c946ce605 refactored antlr/tree exports to use es6 destructuring 2020-02-23 13:09:36 +01:00
Camilo Roca 6764f53024 export RuleContext directly instead of wrapping it on an anonymous object 2020-02-23 13:09:36 +01:00
Camilo Roca 20cbfc5a0a export DFA and DiagnosticErrorListener directly instead of wrapping it on an anonymous object 2020-02-23 13:09:36 +01:00
Camilo Roca 96c2eb6a51 export Trees directly instead of wrapping it on an anonymous object 2020-02-23 13:09:36 +01:00
Camilo Roca 577a9b82bc fix: no need to call RuleNode class as prototype chain is enough 2020-02-23 13:08:39 +01:00
Camilo Roca 5e42c49ced fix: export ATN directly to avoid getting an empty object on (circular) imports 2020-02-23 13:08:39 +01:00
Camilo Roca 1eafbf9286 fix: dont destructure so early to avoid circular dependency problems 2020-02-23 13:08:39 +01:00
Camilo Roca 66c652142c refactored Trees to be a plain object to avoid "this" invocation 2020-02-23 13:08:39 +01:00
Camilo Roca af45a02d1e refactored comments to be jsdoc compatible 2020-02-23 13:08:39 +01:00
Camilo Roca edf24eab3f fix: incorrect import of invalid_alt_number
removed unused RuleNode import
2020-02-23 13:08:39 +01:00
Camilo Roca 79d2c1c163 use const/let for better scoping
use object destructuring on import
2020-02-23 13:08:39 +01:00
Camilo Roca 4a7820aa4b refactored comments to be jsdoc compatible 2020-02-23 13:08:39 +01:00
Camilo Roca 6cc2f082fb use destructuring for imports
use module.exports with object literal for exports
2020-02-23 13:08:39 +01:00
Camilo Roca e790ddb4ba use const/let for better scoping
removed unused Utils import
2020-02-23 13:08:39 +01:00
Camilo Roca 32baf10944 refactored Tree implementations to be es6 classes 2020-02-23 13:08:39 +01:00
Camilo Roca 9d997438f9 refactored interfaces to be es6 classes 2020-02-23 13:08:39 +01:00
Eric Vergnaud a1b89b7d93 add optional encoding 2020-02-16 13:05:56 +08:00
Terence Parr db1c09c6d2
Merge pull request #2744 from julibert/master
Fix CMake packaging
2020-02-14 08:25:51 -08:00
Camilo Roca 6dd86eb960 fix: cannot reasign a const var 2020-02-10 22:23:54 +01:00
Camilo Roca d6975d60b1 fix: second export was overwriting the first one 2020-02-10 22:22:12 +01:00
Camilo Roca 2d8e1b60d1 refactored PredPrediction and DFAState to JsDoc 2020-02-10 22:13:19 +01:00
Camilo Roca 2a294b8a60 fix DFA serializer doc position 2020-02-10 22:07:58 +01:00
Camilo Roca 68730a8288 refactored DFA docs to JsDoc compatible 2020-02-10 22:07:21 +01:00
Camilo Roca 8c1730f687 use const/let and module.exports 2020-02-10 22:01:04 +01:00
Camilo Roca 116dbca78a refactor PredPrediction and DFAState to es6 classes 2020-02-10 21:58:44 +01:00
Camilo Roca 82d51aee99 use const/let
use module exports instead of exports
2020-02-10 21:56:40 +01:00
Camilo Roca 772286cf00 refactor DFASerializer and LexerDFASerializer to ES6 classes 2020-02-10 21:54:23 +01:00
Camilo Roca e5910c3019 use object destructuring 2020-02-10 21:52:26 +01:00
Camilo Roca a8e8402b77 refactor DFA function prototype into es6 classes 2020-02-10 21:51:11 +01:00
julibert b37d2e3815
Fix CMake packaging. 2020-02-09 20:01:24 +01:00
Camilo Roca 4b4aa68be3 fix: npm build is not a valid command 2020-02-08 15:14:10 +01:00
Camilo Roca d8435e13c3 removed conditional nodejs import in favour of webpack bundle
use const/let instead of var
use object destructuring
fix: missing new statement for DOM file reader
2020-02-07 14:08:19 +01:00
Camilo Roca c2180d2d5c adapted antlr4 js to use webpack for browser publishing
lib/require.js custom require removed in favour of webpack bundle
documentation updated
package-lock.json added
2020-02-07 13:57:20 +01:00
Camilo Roca aeebc0bb0b fix: use module.exports instead of exports to follow node best practices
cosmetic changes
2020-02-02 23:52:47 +01:00
Camilo Roca a7017d1a49 missing const 2020-02-02 23:43:12 +01:00
Camilo Roca 19458051c0 refactored error directoryto use classes, const and let 2020-02-02 23:37:21 +01:00
Steve Vinoski 38200b6e31 Fix #2727: improve setTokenFactory in Cpp target
Change the setTokenFactory template functions and the getTokenFactory
functions to use a plain pointer rather than a Ref. This makes the
caller of setTokenFactory responsible for managing the lifetime and
memory of the token factory instance they pass in. Change
CommonTokenFactory::DEFAULT to be a unique_ptr, and correct all places
using it as a Ref.
2020-01-24 08:11:41 -05:00
Larry Li 7cb0d427d4 dart test performance with aot compilation 2020-01-19 21:20:44 +11:00
Larry Li 46bd9e5569 add dart target 2020-01-19 18:22:06 +11:00
parrt f1ffc01723 [maven-release-plugin] prepare for next development iteration 2020-01-18 13:37:08 -08:00
parrt 3f41f283d1 [maven-release-plugin] prepare release antlr4-master-4.8-1 2020-01-18 13:37:01 -08:00
parrt f9cb658daa Update PHP Runtime to latest version 2020-01-18 10:20:39 -08:00
parrt 6c4b491d1b set version to 4.8-1 to fix release 2020-01-18 09:39:46 -08:00
parrt 42512526f9 update javascript target to 4.3 2020-01-16 12:39:52 -08:00
parrt 666131841c [maven-release-plugin] prepare for next development iteration 2020-01-16 12:24:30 -08:00
parrt d569f91795 [maven-release-plugin] prepare release 4.8 2020-01-16 12:24:22 -08:00
parrt 6ad9646382 update version in code to 4.8 2020-01-16 12:18:17 -08:00
parrt 441fea52b1 update to 4.3 version 2020-01-16 12:05:03 -08:00
Mike Lischke e47fd9d918 Brought back a lost comment and fixed a description. 2020-01-03 14:57:04 +01:00
Mike Lischke d295462e2e Doc update for C++ target and fixes for VS 2019 builds 2020-01-03 11:54:30 +01:00
Mike Lischke c487b1a580 Create pre-built binaries for VS 2017/19 instead of older VS versions 2020-01-03 09:01:13 +01:00
Terence Parr 4da24a261f
Merge pull request #2673 from zqlu/fix-javascript-pkg-main
Fix main entry point for JavaScript runtime npm package
2019-12-15 09:03:10 -08:00
Markus Zancolo 1565143529
Merge branch 'master' into fix/CppEmscripten 2019-12-12 10:56:42 +01:00
Terence Parr 8be60804ab
Merge pull request #2532 from WalterCouto/test2
don't unnecessary fetch all tokens when grabbing an interval of text …
2019-12-11 08:48:54 -08:00
WalterCouto f650a0be67 Separate bug fix to Java runtimes 2019-12-11 00:40:20 -05:00
Felix N 5be29fd61d
Merge branch 'master' into master 2019-12-09 10:53:50 +01:00
Mark Lilback 3bd5465881
[Swift] fixed compiler warnings about using var instead of let 2019-11-18 13:42:07 -08:00
Ewan Mellor a701f2b099
[Swift] Replace all uses of NSStringFromClass.
Bridging from NSString to String in Swift 5 is a transcoding operation, so
it is expensive.  Use String(describing:) instead of NSStringFromClass
to avoid this cost.
2019-11-18 13:24:28 -08:00
Ewan Mellor 509eeefa4a
[Swift] Migrate Swift runtime to Swift 5.
This switches from using the deprecated hashValue to hash(into:).
It also switches from using index to firstIndex (matching the change in
the standard library).

In the test template, we switch to using String directly instead of
String.characters.

This also switches all the Travis macOS tests to use the Xcode 10.2 / Mojave
image and changes the Linux Swift tests to download Swift 5.0.1.
2019-11-18 13:24:28 -08:00
Felix Nieuwenhuizen 9029af3ef4 Fix for CMake 3.14 2019-11-17 14:09:35 +01:00
Gerasimos Dimitriadis 437c5a7b9a
Merge branch 'master' into master 2019-11-14 23:52:19 +02:00
jerry_liu fa4b498fc2 Add pretty print AST 2019-11-11 21:33:04 +08:00
Alexei Averchenko 4f86ad5c17
Merge branch 'master' into master 2019-10-31 18:15:30 +03:00
Mike Lischke 3ae5d90296 Fixed an error regarding wrong unique_ptr usage
Also added VS 2019 project files.
2019-10-30 13:35:22 +01:00
zqlu c37ef7e0ea Fix main entry point for JavaScript runtime npm package 2019-10-22 20:31:36 +08:00
Markus Franke 76c0a65d19
Merge branch 'master' into master 2019-10-11 15:24:09 +02:00
Mike Lischke 4d649fbf71 Another attempt at solving this issue
There was already a patch to fix this issue, but it had some problems and was closed by the author after a while.
2019-10-11 14:47:39 +02:00
Mike Lischke 9723e4b9c9 C++ code cleanup
Converted back all TO_DO items to TODO (they were renamed ANTLR4 TODO items, but I had some for C++ which I all wanted to fix).
Also removed some default copy assignment operators which clang warned about.
2019-10-11 14:44:53 +02:00
Mike Lischke e208be701d Merge branch 'master-upstream' 2019-10-11 09:58:31 +02:00
Terence Parr 15e6619ddc
Merge branch 'master' into patch-1 2019-10-10 10:43:40 -07:00
miliu 35fcde7d69 add missed change 2019-09-29 20:51:31 -07:00
miliu 4a8eca579e resolve comments 2019-09-29 20:46:30 -07:00
miliu 033bb7f8c5 fix toString() 2019-09-29 13:57:20 -07:00
Terence Parr 818c6be691
Merge branch 'master' into fix-javascript-hashing-bug 2019-09-22 08:46:37 -07:00
Marcos Passos 789d746636 PHP Target 2019-09-14 09:39:58 -03:00
neko1235 f88f763983
Remove the match_calls counter
This fixes the potential data race caused by unsynchronized concurrent access.
2019-09-10 22:44:42 -07:00
neko1235 db0a57c6ee
Increment match_calls atomically
This ensures the correctness of the counter value, i.e. the value is the number of calls to the match() method.
2019-09-10 21:16:49 -07:00
neko1235 e2b1ae7c79
Fix data race in LexerATNSimulator
There is a potential memory consistency problem.
2019-09-10 16:01:16 -07:00
João Henrique ae28213343 Python3 XPath: Use Token.INVALID_TYPE instead of -1 on getXPathElement 2019-09-05 14:29:25 -03:00
João Henrique b0eb1825fb Spaces/Tabs mishap 2019-09-04 16:43:12 -03:00
João Henrique 8da2ce3044 Added XPath test on Python3 target 2019-09-04 16:02:39 -03:00
João Henrique f15a9f7628 Prevent XPath from returning the same node multiple times in Python3 2019-09-04 15:53:02 -03:00
João Henrique ae2a689a68 Fixed missing XPathLexer.STRING case 2019-09-04 15:33:24 -03:00
João Henrique 4c2f091e8c Style touch-ups on Python3 XPath implementation 2019-09-04 14:34:19 -03:00
João Henrique ff1283affb General XPath fixes for the Python3 runtime 2019-09-03 19:21:42 -03:00
Markus Franke 5a711ac79c Fix escaping of angle brackets 2019-08-27 13:28:40 +02:00
Eric Vergnaud 56eb0a3fab fix 2 erroneous calls, thanks @akaJes 2019-08-24 01:47:12 +08:00
Eric Vergnaud 3e258c5d9d avoid hashCode == 0 2019-08-24 01:46:11 +08:00
Eric Vergnaud 165dfa2b70 use same hash code whether readOnly or not 2019-08-24 01:45:31 +08:00
Eric Vergnaud badee1ffe1 fix minor issue in deserializer 2019-08-24 01:44:53 +08:00
Eric Vergnaud 32470dbab4 align on other runtimes 2019-08-24 01:44:36 +08:00
Mike Lischke 91a50749f9 Added cmake build informations as reported in antlr4/#2606 2019-08-21 10:34:21 +02:00
Mike Lischke d93857c8fe Applied recommended settings after XCode upgrade. 2019-08-18 12:27:50 +02:00
Mike Lischke 8651498f41 Merge branch 'master-upstream' 2019-08-18 11:18:41 +02:00
olowo726 06cee866d2 Made converters thread_local instead of local to function for performance 2019-07-11 19:20:20 +02:00
Terence Parr aa51ef297a
Merge branch 'master' into master 2019-06-23 15:45:10 -07:00
Thomas 3534089ddf Fix formating 2019-05-14 08:57:18 +02:00
Thomas 409b207bf1 Fix formating 2019-05-14 08:57:01 +02:00
Thomas c57996e589 Fix formating 2019-05-14 08:56:48 +02:00
Thomas 264db10290 Revert "Typo fix in XPath #2464"
This reverts commit d9c51b1525.
2019-05-13 22:38:49 +02:00
Thomas e7660d6cfa Align overlap condition on java implementation 2019-05-13 22:38:06 +02:00
Thomas 6fbc156f6c Align overlap condition on java implementation 2019-05-13 22:33:43 +02:00
Thomas 9a6b4e8fe8 Align overlap condition on java implementation 2019-05-13 22:33:16 +02:00
Thomas 0b0e521a8d Align overlap condition on java implementation 2019-05-13 22:25:42 +02:00
Thomas 17d626bc73 Align overlap condition on java implementation 2019-05-13 22:23:06 +02:00
Thomas f3184e9c8d Align overlap condition on java implementation 2019-05-13 22:19:19 +02:00
Thomas d9c51b1525 Typo fix in XPath #2464 2019-05-08 15:01:31 +02:00
Thomas 8d48f1a851 Fix overlaping condition 2019-05-08 14:26:11 +02:00
WalterCouto 31f4dcc7cf don't unnecessary fetch all tokens when grabbing an interval of text (match C# logic)
When an exception is thrown, it calls getText to get the text of the tokens invloved but the current C++ and Java implemention first fetches the rest of the tokens instead of  just using the tokens it already has.  C#'s version is correct (fill() is called only when asking for the entire stream's text).
2019-04-17 20:10:37 -04:00
Alexei Averchenko 4cf4883514 Fixed -Wreorder warning 2019-04-09 09:20:04 +03:00
Gerasimos Dimitriadis d69e7c4d0f Avoid double deletion when NoViableAltException is thrown
When ownership of the configurations set is passed to a NoViableAltException,
it get deleted more than once if the exception happens to get copied.
2019-02-23 20:31:19 +02:00
Terence Parr dade65a895
Merge pull request #2463 from youkaichao/python/test
update test script
2019-02-23 08:57:40 -08:00
Ralu de58c28a24
Fix off by one error in getChild 2019-02-06 10:41:38 +01:00
Markus Zancolò 4fec5f9f7c fix cpp cmake for emscripten
Emscripten can do C++11. added it to the compilercheck in CMakeLists
2019-01-16 14:55:03 +01:00
You Kaichao 45a4cdc67b update test script 2019-01-04 09:17:36 +08:00
You Kaichao 18e2a605c1 update python runtime doc 2019-01-03 19:29:56 +08:00
Mike Lischke ec665c1b90 A small fix in the C++ documentation. 2019-01-03 10:39:59 +01:00
You Kaichao 157afd1a8d update code on updated master 2019-01-02 19:06:36 +08:00
Eric Vergnaud 90854967ca fix broken API calls 2019-01-01 15:04:20 +01:00
Eric Vergnaud 3ad118f87e fix invalid test sequence 2019-01-01 13:31:01 +01:00
Eric Vergnaud cccf6e87da Fix API inconsistency, where getText would expect a tuple named interval, leading to lots of confusion 2019-01-01 13:20:23 +01:00
Eric Vergnaud 108854f986 remove misleading API 2019-01-01 13:19:38 +01:00
Alexey Khoroshilov f73ae702f2 LexerATNSimulator: avoid repeatable import of Lexer
Importing module is quite expensive operation for using it
in a lexer during normal operations.

The patch avoids it by caching the required properties
in LexerATNSimulator object.

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
2019-01-01 15:18:46 +03:00
Terence Parr 6808f9c4b4
Merge pull request #2447 from WalterCouto/test2
Change bitset upperbound to another higher arbitrary value to allow f…
2018-12-26 09:26:13 -07:00
Terence Parr fa19ded837
Merge pull request #2446 from WalterCouto/test
C++ avoid warning in visual studio build due to clang specific directive
2018-12-21 12:01:22 -07:00
Terence Parr fa466c42a1
Merge pull request #2445 from WalterCouto/master
C++: fix bug in PredictionContext::mergeArrays
2018-12-21 12:01:08 -07:00
Terence Parr ce3b5a4cb4
Merge pull request #2176 from niccroad/atnsimulator_memleak
This resolves the recently opened issue 2175 (a memory leak).
2018-12-21 12:00:36 -07:00
WalterCouto 6195ec749b Change bitset upperbound to another higher arbitrary value to allow for larger number of rules
We had a complex grammar file hit past this upperbound.  One solution is to put this up higher, another is to refactor into a container that can grow.
2018-12-20 11:18:16 -05:00
WalterCouto 2d28400234 C++ avoid warning in visual studio build due to clang specific directive
The revently added clang directive cause a new warning for Visual Studio build. Need to include the new code with a directive checking for visual studio
2018-12-20 11:02:35 -05:00
WalterCouto 936db23a40 C++ runtime version of previousTokenOnChannel doesn't handle edge case correctly #2343
<!--
Before submitting an issue to ANTLR, please check off these boxes:

- [x] I am not submitting a question on how to use ANTLR; instead, go to [antlr4-discussion google group](https://groups.google.com/forum/#!forum/antlr-discussion) or ask at [stackoverflow](http://stackoverflow.com/questions/tagged/antlr4)
- [ x] I have done a search of the existing issues to make sure I'm not sending in a duplicate

Please include information about the expected behavior, actual behavior, and the smallest grammar or code that reproduces the behavior. If appropriate, please indicate the code generation targets such as Java, C#, ...  Pointers into offending code regions are also very welcome.
-->
As documented previousTokenOnChannel, should "return -1 if there are no tokens on channel between i and 0."  but the C++ version of the runtime returns 0 not -1 as can be seen below:

```
while (true) {
    Token *token = _tokens[i].get();
    if (token->getType() == Token::EOF || token->getChannel() == channel) {
      return i;
    }

    if (i == 0)
      break;
    i--;
  }
```

Looking at the Java implementation, it would seem the C++ code should instead be:
```
while (true) {
    Token *token = _tokens[i].get();
    if (token->getType() == Token::EOF || token->getChannel() == channel) {
      return i;
    }

    if (i == 0)
      return -1;
    i--;
  }
```
This bug causes getHiddenTokensToLeft() to miss hidden tokens that come before the first non-hidden token.  There would also be a potential bug in CommonTokenStream::LB as the "< 0" case would never happen.
2018-12-20 10:24:49 -05:00
WalterCouto 27c8eb5c6a C++: fix bug in PredictionContext::mergeArrays
In the orignal PredictionContext::mergeArrays there was a bug on Line 281 where the logic differs from java: It currently is:
bool both$ = payload == EMPTY_RETURN_STATE && a_parent && b_parent;
and should instead match java as:
bool both$ = payload == EMPTY_RETURN_STATE && !a_parent && !b_parent;
2018-12-20 10:07:59 -05:00
parrt 70d9ddcd0a [maven-release-plugin] prepare for next development iteration 2018-12-18 10:35:34 -08:00
parrt be58ebffde [maven-release-plugin] prepare release 4.7.2 2018-12-18 10:35:24 -08:00
parrt 8fab6b98b3 [maven-release-plugin] rollback the release of 4.7.2 2018-12-18 10:33:52 -08:00
parrt 573cb86705 [maven-release-plugin] prepare release 4.7.2 2018-12-18 10:31:44 -08:00
parrt 9f6dfb1809 Merge branch 'master' of github.com:antlr/antlr4 2018-12-17 14:43:34 -08:00
Terence Parr 96890a3505
Merge branch 'master' into patch-1 2018-12-17 15:40:30 -07:00
parrt 38a95da397 manual edits of 4.7.1 -> 4.7.2 2018-12-17 14:32:39 -08:00
ralf 7fdec95d15 added virtual dtor to polymorphic class template ParseTreeProperty 2018-11-29 10:44:47 +01:00