Commit Graph

2374 Commits

Author SHA1 Message Date
Terence Parr f79a34aa3a Merge pull request #1557 from mike-lischke/LR-loop-fix
Lr loop fix
2016-12-27 12:57:26 -08:00
Mike Lischke 189d390481 Merge branch 'master_upstream' 2016-12-27 13:12:21 +01:00
Mike Lischke ad31b44009 Removed static libraries from deployment script (Windows).
Static libs are huge, so they put quite some burden on download management. They are easy to create from source, however.
2016-12-27 13:11:54 +01:00
Terence Parr 1c987e77ea Merge pull request #1548 from adrpo/FixMsys2MinGWBuild
adapt code to compile with msys2 mingw compiler
2016-12-25 09:03:04 -08:00
Ivan Kochurkin 03a75a5ce6 fix error "'CommonToken' object has no attribute 'stopIndex' in Python{2|3}" #1529. 2016-12-24 18:22:48 +03:00
Adrian Pop 8ab5f02f7d adapt code to compile with msys2 mingw compiler
- add required extra flags to the C++ compiler in CMakeLists.txt
- guard some code with _MSC_VER instead of WIN32
2016-12-24 01:38:28 +01:00
Sam Harwell 8b21cc3dfb Fix DefaultErrorStrategy.sync handling of end of rule
This change updates the default sync() strategy to match the strategy used
for selecting an alternative when prediction leaves the decision rule prior
to reaching a syntax error.

Closes #1545
2016-12-23 16:28:46 -06:00
parrt df142794f6 add blank line after copyright. Fixes #1539 2016-12-23 09:50:16 -08:00
Terence Parr 58600d29b8 Merge pull request #1542 from akosthekiss/fix-doc-hidden-tokens-right
Fix documentation of getHiddenTokensToRight in BufferedTokenStream
2016-12-22 09:20:33 -08:00
Terence Parr abf16b08b9 Merge pull request #1541 from ericvergnaud/fix-#1538
Fix a Python 2 typo
2016-12-22 09:19:58 -08:00
Dong Xie 0123d874e6 Merge remote-tracking branch 'upstream/master' into dotnetcore 2016-12-22 15:24:25 +00:00
Akos Kiss cbac45e6ed Fix documentation of getHiddenTokensToRight in BufferedTokenStream 2016-12-22 11:24:26 +01:00
Eric Vergnaud 4125fbad8a grr... 2016-12-21 19:28:38 +08:00
Mike Lischke 218ae73608 Make return states the same size as the parent array.
Both arrays have always the same size and after reducing common parents in a prediction context optimization we also have to update the states array.
2016-12-21 10:36:46 +01:00
Mike Lischke e1fb0b68c7 C++ implementation of the LR-loop optimization. 2016-12-21 09:26:08 +01:00
Mike Lischke 4dd4a676a9 Merge branch 'master_upstream' 2016-12-21 09:10:21 +01:00
Eric Vergnaud 6398a06fba fixes #1530 and #1531 2016-12-20 23:27:08 +08:00
Mike Lischke 56d1e2f2cc Added new file to VS 2013 ANTLR project for correct building. 2016-12-19 17:48:27 +01:00
Mike Lischke d324e9a46b Merge branch 'master' into LR-loop-fix 2016-12-19 16:48:10 +01:00
Terence Parr fed8c97bda Merge pull request #1524 from ericvergnaud/improve-javascript-doc
Update npm related docs
2016-12-16 09:22:53 -08:00
Terence Parr 8df5550857 Merge pull request #1511 from mike-lischke/issue-1483
Issue 1483
2016-12-16 09:22:13 -08:00
Eric Vergnaud 14f0c7a663 also published to npm 2016-12-17 00:03:03 +08:00
parrt c4c2966dbd update doc 2016-12-15 20:42:29 -08:00
parrt 23313ee44e [maven-release-plugin] prepare for next development iteration 2016-12-15 14:25:41 -08:00
parrt aacd2a2c95 [maven-release-plugin] prepare release 4.6 2016-12-15 14:25:36 -08:00
parrt 7f95781321 update doc with more detail on building c# 2016-12-15 12:44:44 -08:00
parrt 586b36fe94 tweak doc. update assembly name to Antlr4.Runtime.Standard 2016-12-15 12:28:32 -08:00
parrt 3c1a34d005 add this to 'building a release doc' 2016-12-15 12:21:36 -08:00
Eric Vergnaud 321a6f2844 create and document NuGet packaging process 2016-12-15 12:01:10 -08:00
Eric Vergnaud 07f6e3a681 modify output paths 2016-12-15 12:01:10 -08:00
Eric Vergnaud cf87c2371e cleanup 2016-12-15 12:01:10 -08:00
Eric Vergnaud d4e1f80cab updated the page 2016-12-15 12:01:10 -08:00
parrt 484dd62a39 Merge branch 'master' of github.com:antlr/antlr4 2016-12-14 13:33:00 -08:00
Terence Parr dd2f0a964f Merge pull request #1509 from janyou/Fixes-1073
Fixes #1073 for Swift target
2016-12-14 13:25:46 -08:00
Terence Parr fd3bd91828 Merge pull request #1508 from janyou/Fixes-1298
Fixes #1298 for Swift target
2016-12-14 13:25:27 -08:00
Terence Parr 8b75e3fc5b Merge pull request #1505 from janyou/Fixes-1238-994
Swift target Fixes #1238, Fixes #994
2016-12-14 13:25:04 -08:00
Terence Parr 64a8c32138 Merge pull request #1506 from janyou/Fixes-1042
Fixes #1042 Swift target
2016-12-14 13:24:31 -08:00
Terence Parr 17bad8ae69 Merge pull request #1512 from mike-lischke/master
C++ implementation for #1484
2016-12-14 13:23:24 -08:00
parrt 8af4c38991 try appveyor with tweak to cmake config. 2016-12-14 12:54:03 -08:00
Mike Lischke 76fcb6d37e C++ implementation for #1484. 2016-12-14 17:34:03 +01:00
Mike Lischke 3b5c2a34d2 Implemented enhanced CommonToken::toString method. Fixes #1483. 2016-12-14 17:04:05 +01:00
Mike Lischke 50df59fea8 Removed obsolete macros. 2016-12-14 14:30:33 +01:00
janyou 0c835a248a Fixes #1298 2016-12-14 11:58:53 +08:00
janyou be1b070a1a Fixes #1073 2016-12-14 11:40:07 +08:00
janyou f964dd4af0 Fixes #1042 2016-12-14 11:14:02 +08:00
janyou c9508b74a4 Fixes #1238, Fixes #994 2016-12-14 09:09:40 +08:00
parrt 81aaeb199b tweak 2016-12-13 13:28:39 -08:00
Terence Parr f35576a7f2 Merge pull request #1491 from mike-lischke/master
Fix for multithreading issues
2016-12-13 11:35:11 -08:00
Terence Parr 65982518ef Merge pull request #1499 from ericvergnaud/fix-#1496
fix unicode issue in Python 2
2016-12-13 10:37:03 -08:00
Mike Lischke 7362152b7c Merge branch 'master_upstream' 2016-12-13 17:46:18 +01:00
Mike Lischke 1eeaf20aa0 Initial implementation of the LR loop optimization in the C++ target.
There is an issue with the tests. Some hang forever. Need to investigate yet.
2016-12-13 17:45:23 +01:00
parrt a69299c507 set javadoc to deploy phase. 2016-12-13 08:17:13 -08:00
Mike Lischke 0ea8ede5b9 Changed cmake target install dir to an own subfolder for antlr.
Otherwise all headers end up in the include/ root, which is a pain and very unconventional.
2016-12-13 16:28:38 +01:00
Eric Vergnaud e15e88a049 fix unicode issue 2016-12-13 21:33:19 +08:00
Mike Lischke 8bb522dd4e Unicode debug output works in VS 2015 intermediate window.
I updated the comments in the demo app about this.
2016-12-13 13:52:30 +01:00
Mike Lischke f003cce7d9 Fixed a build problem on Windows.
The import and export declspecs were wrong and lead to missing symbols when using static class members.
Additionally I added a VS2015 solution for the demo, updated the generation script to use the new ANTLR4 jar and fixed a warning.
2016-12-13 13:40:58 +01:00
Mike Lischke c1a5553afb Build fix for new multi-threading lock.
In XCode it wasn't necessary to add the condition_variable header (probably included indirectly), while for other platforms that is necessary.
2016-12-13 09:03:21 +01:00
Mike Lischke 31b259e636 Merge branch 'master_upstream' 2016-12-13 09:00:13 +01:00
parrt 2739a0c9ef Fixes #1492. only create javadoc if we use `mvn -DskipTests javadoc:jar install` 2016-12-12 17:33:39 -08:00
Terence Parr aea034cb45 Merge pull request #1493 from ericvergnaud/realign-csharp-runtime
Realign CSharp runtime with Java runtime, implements #1441
2016-12-12 16:54:36 -08:00
Eric Vergnaud edaeaadf99 Fixes #1042 2016-12-13 00:17:02 +08:00
Eric Vergnaud 9df5f3d571 Fix VS2013 project 2016-12-13 00:05:13 +08:00
Eric Vergnaud caa581a9e0 success! 2016-12-12 23:52:09 +08:00
Eric Vergnaud 39de8896f8 Merge branch 'master' into realign-csharp-runtime 2016-12-12 21:54:26 +08:00
Eric Vergnaud 2fc33d97cd all tests pass! 2016-12-12 21:36:41 +08:00
Terence Parr 2e59dc2184 Merge pull request #1469 from gaulouis/issue-1461
Fix conflict lexer command in CppTarget demo
2016-12-11 15:14:14 -08:00
Terence Parr 7cf5688760 Merge pull request #1468 from gaulouis/issue-1443
Fix compilation error for CppTarget demo on Linux
2016-12-11 15:13:45 -08:00
parrt 42086eff6e Fix #980 2016-12-11 14:56:11 -08:00
Terence Parr 6a20919cb7 Merge pull request #1476 from renatahodovan/python-target-1472
Implement the fix of #1298 for Python targets.
2016-12-11 14:49:28 -08:00
Terence Parr c7e27664c2 Merge pull request #1471 from renatahodovan/visit-error-node
Call visitErrorNodes properly in Python targets.
2016-12-11 14:48:21 -08:00
Terence Parr 2b99487335 Merge pull request #1487 from renatahodovan/js-errornode
Implement the fix in #1471 for JavaScript target.
2016-12-11 14:47:53 -08:00
Eric Vergnaud 0170c9a064 Good progress with parser 2016-12-12 02:00:09 +08:00
parrt bc62f9f3a7 get proper manifest into runtime jar 2016-12-11 09:51:21 -08:00
Eric Vergnaud 19d70cd777 TestLexerExec tests pass 2016-12-12 00:52:09 +08:00
Eric Vergnaud 10a1580448 compiles 2016-12-11 20:29:05 +08:00
Mike Lischke 31a6cc84a9 Merge branch 'master_upstream' 2016-12-11 12:57:02 +01:00
Mike Lischke 4aaa0bfb5a Better synchronization for multithreading - fixes issue #1435
- The shared mutexes were defined as normal instance variables in a simulator, so the locks didn't work (multiple instances of simulators active). By making them static (which is more appropriate anyway, since we are protecting static data) the synchroniation now works.
- For better performance an own class for multiple read/single write locks was added and used instead of the shared mutexes.
- Made the static wstring_covvert instance local variables in ws2s and s2ws. Otherwise we would also need a mutext to protect it.

- Some other minor changes.
2016-12-11 12:53:24 +01:00
parrt 0dae6359ec Fixes #1007. 2016-12-10 18:29:09 -08:00
parrt fc20027da3 generates runtime javadoc jar now with dot generation for PredictionContext 2016-12-10 18:26:19 -08:00
parrt 52cecbe9e1 generates tool javadoc jar now 2016-12-10 18:21:10 -08:00
parrt 98900144b2 attempting to get src/javadoc back. 2016-12-10 18:09:37 -08:00
parrt 731603b489 maven shade and bundle don't work together so i dropped bundle for main complete jar. 2016-12-10 17:31:03 -08:00
parrt c0e7c49a9e update jar version, add implementation manifest entries. Fixes #1036 2016-12-10 16:43:10 -08:00
parrt 9b758cb668 update versions 2016-12-10 16:07:35 -08:00
Renata Hodovan 3a4c8d8bc6 Implement the fix in #1471 for JavaScript target. 2016-12-11 00:59:24 +01:00
parrt 87fbc682e3 strip more stuff we don't need 2016-12-10 15:58:28 -08:00
parrt f13b09eb3d Fixes #1042 2016-12-10 14:51:17 -08:00
parrt e65154c161 Fix #1073. Better token output. 2016-12-10 14:34:50 -08:00
parrt 0a7e90fe8e fix #1177 (LB(k) stops at index 0) @antlr/antlr-targets might care about this 2016-12-10 14:05:31 -08:00
parrt 9ef75603ce improve comment 2016-12-10 10:45:04 -08:00
Terence Parr 9f51ec1e6b Merge pull request #1477 from parrt/fix-1203
fix LL1 analyzer
2016-12-10 09:52:48 -08:00
parrt 0eb27279de fix LL1 analyzer 2016-12-09 18:07:47 -08:00
Renata Hodovan 58d51450d4 Implement the fix of #1298 for Python targets.
The patch adapts the fix in PR #1472 for Python targets.
2016-12-10 02:41:08 +01:00
Terence Parr 82372aae2c Merge pull request #1460 from renatahodovan/intervalset-range-fix
Fix AttributeError when trying to write an immutable variable in Python.
2016-12-09 16:05:11 -08:00
Dong Xie 7fcf8ab074 pull in pr1229 into branch: dotnetcore 2016-12-09 23:59:20 +00:00
parrt eb8e2890c3 copyFrom copies error nodes over. Fixes #1298 2016-12-09 11:10:26 -08:00
Renata Hodovan bd09023209 Call visitErrorNodes properly in Python targets.
The consume method of the Parser class calls visitTerminal on both
TerminalNodes and ErrorNodes even if the comment above states that
ErrorNodes should be visited by visitErrorNodes. This behaviour
is also inconsitent with the Java target. The patch fixes this in
both Python targets.
2016-12-09 19:41:23 +01:00
parrt 661c87b47c update comment 2016-12-09 09:49:56 -08:00
gaulouis af95045362 Fix conflict lexer command in CppTarget demo 2016-12-09 17:32:28 +01:00
gaulouis 9c70b3b4ac Fix compilation error 2016-12-09 16:09:30 +01:00
parrt 2c99f187a0 make it read "Copyright (c) 2012-2016 The ANTLR Project" 2016-12-08 11:43:06 -08:00
parrt 1b1a9862c4 contributors->authors 2016-12-08 11:43:06 -08:00
parrt 61e8eba4fc fix typo 2016-12-08 11:43:06 -08:00
parrt 03925a2753 add copyrights on go 2016-12-08 11:40:30 -08:00
parrt 03c2426e9c add/update copyrights on swift. @janyou, I removed your jlabs copyright notice, replacing with antlr project copyright per contributors.txt 2016-12-08 11:40:30 -08:00
parrt 43370a6e12 add copyrights on csharp 2016-12-08 11:40:30 -08:00
parrt ca144945ac update copyrights on csharp 2016-12-08 11:40:30 -08:00
parrt adadf567cc add copyrights on js 2016-12-08 11:40:30 -08:00
parrt 0b7c7f1333 update copyrights on js 2016-12-08 11:40:30 -08:00
parrt 422ce92931 add copyrights on Cpp 2016-12-08 11:40:30 -08:00
parrt e6b2e1916b update copyrights on Cpp 2016-12-08 11:40:30 -08:00
parrt c0e4f07602 add copyrights on Python3 2016-12-08 11:40:30 -08:00
parrt fed78dbd28 update copyrights on Python3 2016-12-08 11:40:30 -08:00
parrt 06973a8ea9 fix typo in copyright 2016-12-08 11:40:30 -08:00
parrt 76d421a89e add copyrights on Python2 2016-12-08 11:40:30 -08:00
parrt f597069728 Update copyright on Python2 2016-12-08 11:40:30 -08:00
parrt 2bad631cce fix typo in copyright 2016-12-08 11:40:30 -08:00
parrt efc3f82f38 rm redundant license files 2016-12-08 11:40:30 -08:00
parrt 891915de84 Update copyright on java, xml files. Make BSD license conform to standard. 2016-12-08 11:40:30 -08:00
Renata Hodovan a7227b4499 Fix AttributeError when trying to write an immutable variable in Python.
The `removeOne` function of IntervalSet tries to directly
rewrite the start field of an immutable range variable when
splitting an existing interval. This causes AttributeError which
is fixed by the patch.
2016-12-08 11:05:00 +01:00
Mike Lischke 1751fac496 Merge branch 'master_upstream' 2016-12-07 16:11:08 +00:00
Terence Parr 7f4bb06adf Merge pull request #1448 from ericvergnaud/optimize-javascript-runtime
Optimize javascript runtime
2016-12-05 18:41:08 -08:00
Eric Vergnaud 5ce735f56f cleanup 2016-12-04 18:58:49 +08:00
Eric Vergnaud 67a93b3f36 refine debug info 2016-12-04 16:51:46 +08:00
Eric Vergnaud 185f8e9635 Merge branch 'master' of https://github.com/antlr/antlr4 into optimize-javascript-runtime 2016-12-04 14:29:40 +08:00
Eric Vergnaud 7332c1eb02 fix various hashing issues 2016-12-04 14:23:30 +08:00
Sam Bloomberg 21c528cd06 Updated vs2015 project for cpp runtime 2016-12-03 15:48:01 -05:00
Terence Parr 2c63e95359 Merge pull request #1438 from ewanmellor/swift-playground
Create a new Xcode playground for Swift.
2016-12-03 10:48:03 -08:00
parrt 814b0488ee Merge branch 'lygav-master' into fixes-550-python 2016-12-03 10:32:13 -08:00
Terence Parr 30dddbb84d Merge pull request #1445 from parrt/fixes-550-java
Fixes #550 by @lygav, which tweaks and more tests by me.
2016-12-03 10:25:55 -08:00
parrt c959bf649b Fixes #550 by @lygav, which tweaks and more tests by me. 2016-12-03 10:25:02 -08:00
parrt 2dd96f3220 Merge branch 'master' of git://github.com/lygav/antlr4 into lygav-master 2016-12-03 09:19:57 -08:00
Terence Parr 53b6153060 Merge pull request #1437 from ewanmellor/swift-xcode-project-tidyups
Swift Xcode project tidyups
2016-12-03 09:11:55 -08:00
Terence Parr 95dc3f673f Merge pull request #1440 from samtatasurya/cpp-get-text
Fix to Issue #1434
2016-12-03 09:10:51 -08:00
Terence Parr 1f953da0ac Merge pull request #1441 from ericvergnaud/poor-left-recursive-rule-performance
Poor left recursive rule performance
2016-12-03 09:08:40 -08:00
Eric Vergnaud e850b4d97f use hashCode instead of hashString - Lexer seems to work but not Parser 2016-12-03 01:13:24 +08:00
Terence Parr 8ead51d8ff Merge pull request #1423 from wxio/master
Fix for redeclared error is generated Go code.
2016-12-01 10:51:40 -08:00
Eric Vergnaud 682e0341c1 fix a typo in optimisation code 2016-12-01 22:23:53 +08:00
Eric Vergnaud 3cbc456355 cleanup test files 2016-12-01 22:23:26 +08:00
Vladi 09db23160f fix for #550 2016-12-01 12:19:29 +02:00
Samuel Tatasurya 1aa9a41d01 Removed comma and space appending in getText() 2016-12-01 01:40:37 -08:00
Ewan Mellor b0c3824357 Create a new Xcode playground for Swift.
This takes the example from
https://github.com/janyou/Antlr-Swift-Runtime/tree/master/Test and packages
it into an Xcode playground.  This allows the user to interact with the
grammar directly inside Xcode, and serves as a live demo of the Swift support.

Update the docs to match.
2016-12-01 01:23:52 -08:00
Ewan Mellor ee0babaa8f Update the bundle identifiers.
This changes PRODUCT_BUNDLE_IDENTIFIER to read org.antlr.v4.swift.macos or
org.antlr.v4.swift.ios.  This is similar to the naming scheme used in the Java
code.

The previous identifier was jlabs.Antlr4.  I don't know what that refers to.
2016-12-01 00:55:15 -08:00
Ewan Mellor 20ef01c442 Update the Xcode project to match the recommended values in Xcode 8.1. 2016-12-01 00:55:15 -08:00
Vladi Lyga 8b60373c43 fix: enable to access interval as a list 2016-11-30 17:16:35 +02:00
Vladi Lyga f50fb7df15 Fix error when Interval is rewritten with a tuple 2016-11-30 13:55:54 +02:00
Vladi Lyga 377f2f5c89 Merge remote-tracking branch 'antlr4/master' 2016-11-30 11:31:24 +02:00
Vladi Lyga 238b55a0b6 Extensive TokenStreamRewriter tests + many python2 runtime fixes.
Including fix for https://github.com/antlr/antlr4/issues/550
2016-11-30 11:27:04 +02:00
Eric Vergnaud f9d79dfcb2 implement LR optimisation in JavaScript + align naming + DFAState ctor bugs 2016-11-30 01:29:18 +08:00
Eric Vergnaud 6e071f4950 implement LR optimisation in Python3 + align naming + DFAState ctor bugs 2016-11-30 00:40:42 +08:00
Eric Vergnaud ccde4051bd fixed the 2 failing tests with left recursion optimisation 2016-11-30 00:40:01 +08:00
Gary Miller 2b69dd7c18 Added GetTokenSourceCharStreamPair method to lexer. Needed when customising lexer eg. to create a python style block sensitive lexer. 2016-11-29 13:27:49 +11:00
Eric Vergnaud ec5f64a459 start migrating, but 2 tests are failing 2016-11-29 00:05:13 +08:00
Eric Vergnaud 3026c3cc94 start migrating 2016-11-28 23:05:43 +08:00
parrt 228bcac063 stick with existing not iterative walker by default. 2016-11-27 09:42:23 -08:00
parrt c258fd2a5d rm redundant init 2016-11-27 08:41:11 -08:00
Mike Lischke f9699efa2c C++ runtime implemenation of [ee614db] 2016-11-27 15:08:15 +01:00
Mike Lischke 9eb2a31179 C++ target implementation for [c695ed2]. 2016-11-27 13:35:07 +01:00
Mike Lischke fa14b9aad8 Merge branch 'master_upstream' 2016-11-27 13:34:19 +01:00
parrt c695ed25e9 Fixes #1238. @antlr/antlr-targets might want to tweak their targets. 2016-11-25 13:01:07 -08:00
parrt 3506dcef1d add @Override to hush warnings. Manually did some of https://github.com/antlr/antlr4/pull/1066 2016-11-25 12:52:44 -08:00
parrt 9d3415ed8a Merge branch 'master' of git://github.com/ghosthope/antlr4 into ghosthope-master 2016-11-25 12:28:14 -08:00
Tom Wieczorek d1bc0f5ca5
Merge remote-tracking branch 'origin/master' into iterative-tree-walker 2016-11-25 12:25:27 +01:00
Mike Lischke a6161326e1 Merge branch 'master_upstream' 2016-11-25 08:58:15 +01:00
Mike Lischke dc0e952fc2 Removed an obsolete line. 2016-11-25 08:38:56 +01:00
parrt 933cc6e63c make the switch an ENV not property. 2016-11-24 20:30:18 -08:00
parrt e1a1867149 change name of switch that turns off new opt. 2016-11-24 13:32:41 -08:00
parrt c182e3d5bf Fixes #994 poor performance in left-recursive expressions with very large expression input phrases; builds off of @sharwell solution that explicitly checks for key return states in expr rules 2016-11-24 13:07:19 -08:00
Sam Harwell fca5e458d3 Implement dynamic disambiguation
Fixes #1398
Fixes #994
2016-11-24 13:01:14 -08:00
ghosthope 04e9078dd9 from master 2016-11-23 13:58:43 +03:00
parrt ace7758f6e Fixes #1280 2016-11-22 12:49:24 -08:00
parrt aeaba48a0b pull in lygav python impl of TokenStreamRewriter 2016-11-22 12:34:46 -08:00
parrt 2cb02d9b43 add UTF-8 encoding on all antlr runs during test, fix appveyor 2016-11-22 10:00:28 -08:00
Terence Parr f3be375c3a Merge pull request #1379 from ericvergnaud/python3-token-stream-rewriter
port from python 2 version
2016-11-21 11:34:16 -08:00
Terence Parr 5f41dd2fc9 Merge pull request #1378 from ericvergnaud/javascript-visitor-clarification
clarify javascript visitor code
2016-11-21 11:33:39 -08:00
Terence Parr 37ff8a3161 Merge pull request #1248 from renatahodovan/configset-contains
Fix comparisons in ATNConfigSet.__contains__ of Python targets.
2016-11-21 10:08:51 -08:00
Eric Vergnaud 9d926d6c2a port from python 2 version 2016-11-20 15:56:43 +08:00
Eric Vergnaud c50b10f865 clarify javascript visitor code 2016-11-20 14:10:05 +08:00
hanjoes e0b326677b Migrating the current Swift tests to the new testing framework. 2016-11-19 18:30:48 -08:00
janyou 281d624751 Update RuntimeMetaData.swift 2016-11-19 18:30:48 -08:00
janyou 033e5ed136 Update Trees.swift 2016-11-19 18:30:48 -08:00
janyou e3cc81bc32 Update RuleContext.swift 2016-11-19 18:30:48 -08:00
janyou 97c5ebd359 Update Parser.swift 2016-11-19 18:30:48 -08:00
Ewan Mellor 1c6f6c4aed Ignore .xcuserdata, and remove those that were here already. 2016-11-19 18:30:48 -08:00
Ewan Mellor 69d9cfe302 Added a Swift runtime.
This comes from https://github.com/janyou/Antlr-Swift-Runtime and is
marked Copyright (c) 2015 janyou on top of the BSD license and Copyrights
for Terence Parr and Sam Harwell derived from the original ANTLR source.
2016-11-19 18:30:48 -08:00
parrt d9490e16da undo damage done by intellij pulling out imports from python :( 2016-11-19 18:29:04 -08:00
parrt 883e013cc6 Fixes #1318. 2016-11-19 16:13:50 -08:00
parrt 144baa9ade cannot raise string exceptions 2016-11-19 15:09:13 -08:00
Terence Parr 30e4ec29c8 Merge pull request #1251 from renatahodovan/execATN-conflictingAlts
Fix the initialization of conflictingAlts in execATN in Python targets.
2016-11-19 14:58:39 -08:00
parrt c0b5a40bcf Python3 target filterPrecedencePredicates should take collection:set not list as hint. Manual implementation of https://github.com/antlr/antlr4/pull/1247/files 2016-11-19 14:51:12 -08:00
Terence Parr f0177c96f8 Merge pull request #1246 from renatahodovan/nextToken-self-fix
Fix eofToken access in ListTokenSource.nextToken() by Python targets.
2016-11-19 14:43:06 -08:00
Terence Parr e32799f048 Merge pull request #1371 from FloorGoddijn/master
CPP runtime :  Added a specialized ctor for Any for nullptr.
2016-11-19 14:23:53 -08:00
Terence Parr db5d306285 Merge pull request #1187 from renatahodovan/atnconfig_instantiate
Fix initialization of ATNConfig when computing SLL prediction termination condition.
2016-11-19 14:21:22 -08:00
Terence Parr 1ba897ace4 Merge pull request #1186 from renatahodovan/python-enterrule-typo
Fix typo in the parser of the Python3 runtime.
2016-11-19 14:16:17 -08:00
parrt 5153154658 Merge branch 'fix_typos' of git://github.com/sebkur/antlr4 into sebkur-fix_typos 2016-11-19 11:52:17 -08:00
Floor 1931ff7280 * Added a specialized ctor for Any for nullptr.
There was an inconvenience that an Any created with a nullptr returned false for isNull()
* removed warning [forcing value to bool 'true' or 'false'] when calling is<>
2016-11-18 17:24:11 +01:00
parrt 125a509e4e Fixes #1369 by removing any redundant edges. 2016-11-17 12:41:32 -08:00
parrt 1aa3c957eb add test for extra atn issues. currently failing. 2016-11-17 12:27:32 -08:00
Mike Lischke 3062d09e92 Merge pull request #48 from FloorGoddijn/master
using new preprocessor macro ANTLR4CPP_DLL instead of _WINDLL
2016-11-16 15:27:11 +01:00
Mike Lischke 9ac9c1c79a Overhaul of the TokenStreamRewriter class.
Fixes bug #49.
2016-11-16 15:17:46 +01:00
Mike Lischke e5aa03c0b0 Merge branch 'master_upstream' 2016-11-16 13:31:06 +01:00
Mike Lischke af0ac9e2bb Fixed a number of mem leaks in TokenStreamRewriter.
Also added a workaround for duplicate ATN state transitions. Looks there is a problem in the ATN generation by ANTLR which needs investigation.
2016-11-16 13:27:58 +01:00
parrt 08e9776a4a shift template-based runtime test to legacy, new mechanism uses annotation to get multi-line strings into java. all tests pass minus about 15 in C# 2016-11-15 11:08:19 -08:00
Mike Lischke 74d094bee7 Merge branch 'master_upstream' 2016-11-10 20:35:10 +01:00
Mike Lischke da57be191a Avoid warnings when building on Linux. 2016-11-10 10:28:13 +01:00
Floor e0090254aa using new preprocessor macro ANTLR4CPP_DLL in stead of the windows defined _WINDLL to define ANTLR4CPP_PUBLIC and EXPIMP_TEMPLATE for dll configurations.
There was a problem when the static lib was used at a client dll ( which itself defines the _WINDLL)
2016-11-09 13:45:37 +01:00
Terence Parr f29a7940d8 Merge pull request #1345 from pboyer/intervalSetBug
Fix bug in IntervalSet
2016-11-07 23:19:22 +01:00
Peter Boyer 9bb49842ef cleanup 2016-11-07 16:27:39 -05:00
Peter Boyer aace3de380 Fix bug in interval set 2016-11-07 16:23:10 -05:00
Mike Lischke 92b032820e Merge branch 'master_upstream' 2016-11-07 11:19:12 +01:00
Mike Lischke 3b3fe3da57 Merge branch 'master_upstream'
Had to resolve a number of conflicts + added code required for the C++ target to generate header files, after the recent changes in the main repo.
2016-11-07 11:16:02 +01:00
parrt 71c52eb0fa building 4.6 runtime requires 4.5 antlr mvn plugin 2016-11-06 11:27:30 -08:00
parrt ffaedd209d Set version in code to 4.6. 2016-11-06 11:21:06 -08:00
parrt 95c850e5f8 set version in prep for 4.6 2016-11-05 16:48:36 -07:00
Peter Boyer 485465ee7a Merge pull request #83 from pboyer/reduce-model-changes
Reduce model changes from parrt
2016-11-05 15:29:37 -04:00
parrt 6d022379bc Pull in parrt's branch 'model-updates-for-new-targets' which appears to have freshened some non Go stuff as well. Simplify Go filename construction. 2016-11-05 08:48:37 -07:00
Mike Lischke e71e95080a Merge branch 'master_upstream'
Also updated the list of ignored tests in the Cpp.test.stg file (lke it is done for the other targets).
2016-11-05 15:07:59 +01:00
Peter Boyer f553056a2b Fix unused import error 2016-11-04 14:40:15 -04:00
Peter Boyer 0541f34a7e Merge with origin/master 2016-11-04 14:08:12 -04:00
Peter Boyer aa568711d9 Remove PortDebug 2016-11-04 13:55:39 -04:00
Sebastian Kürten 6a8a93286f Move a @since tag to start of a new line
Javadoc requires block tags to appear at the start of lines.
2016-11-01 11:46:16 +01:00
Sebastian Kürten 8b16ff180a Fix a few typos in Javadoc 2016-11-01 11:46:04 +01:00
kai stammerjohann 1feef18e3e ParserRuleContext init members 2016-11-01 09:06:27 +01:00
Mike Lischke f794820aaf Reworked mutex handling + updated C++ template for a var init
- Mutexes have been consolidated. Instead of one per DFA (which can easily get to hundreds of them) we only have one mutex in the Recognizer class and all other parties use this for serialization. It's only about protected the DFA anyway, which is stored in a recognizer (lexer/parser).
- ATNState::getStateType() returns a size_t value now (actually an enum).
- Replaced checks via RTTI for transitions by the (serialization) type of the transition, for simplicity.
- Added some missing initialization for fields in certain ATN state classes.
- Fixed mem leak in DFA by shadowing the s0 field. That way still have a ref to the self created instance, even is s0 was replaced later.
- Added variable init in code generation for a rule context declaration (e.g. for labels).
2016-10-29 14:46:38 +02:00
Floor 951d0f06d7 cpp runtime: updated the vs2013 project reflecting the last changes 2016-10-21 13:07:15 +02:00
Peter Boyer adef6f690a Cleanup var statements (#73)
* Cleanup var statements

* Fix type decl
2016-10-17 12:57:26 -04:00
Peter Boyer 07f7dae78f Fix type decl 2016-10-17 12:04:05 -04:00
Peter Boyer 191b8f9d58 Cleanup var statements 2016-10-17 11:41:56 -04:00
Mike Lischke 9e77edcb34 ATNState::transactions improvements
The transaction field was access with trivial getters and setters which server no real purpose, so I made the vector public and remove all the obsolete accessor functions. This simplifies the API (e.g. use .size() instead of getNumberOfTransitions()).
This change required a few other changes in runtime.

Additionally, I radically cut down the ATN::toString method to return only what the Java runtime is doing instead of a full dump of the state and it's transitions.
2016-10-14 17:10:00 +02:00
Mike Lischke aabf4baf60 Added default c-tor to ParseTree + improved createInstance.
createInstance now use move semantics for its parameters.
2016-10-14 17:05:00 +02:00
Mike Lischke 014070de66 Converted smart pointer for the rule context in RecognitionException
Since we pass around raw pointer for volatile references now, we must not create smart pointers from them or we will get a double free.
2016-10-14 17:03:38 +02:00
parrt 285c7fca6c resolve contribs conflict 2016-10-13 16:21:00 -07:00
Peter Boyer 2444386091 Remove JavaScript PORT_DEBUG, re-enable runtime tests for other language targets (#69)
* Re-enable runtime tests for other language targets

* Fix typo in js code

* Remove PORT_DEBUG statements

* Fix missing

* Fix testAltNum
2016-10-13 17:06:22 -04:00
Terence Parr 8d0ae8599e Merge pull request #1221 from ericvergnaud/javascript-consistency
Following #1218, ensure consistency of ATNConfigSet hashing strategy …
2016-10-13 14:05:36 -07:00
parrt 4312b37828 pull test changes in 2016-10-13 10:58:19 -07:00
Peter Boyer 42347c078b Fix merge failure 2016-10-12 09:53:43 -04:00
Peter Boyer 60662c4b70 Fix remaining tests (#64)
* Fix pred context typo

* Adjust array lengths

* PositionAdjustLexer test fix first steps

* allow virtual method calls from Lexer

* Hopefully fix issues with dup namedActions

* Make parser members

* Fix testParserProperty

* Fix LeftRecursion test failures
2016-10-12 09:49:42 -04:00
Mike Lischke a4e343806f Some small optimizations.
- No copy of a DFA state during ATN deserialization.
- Fixed memory leak of locally created s0 state in DFAState.
2016-10-12 11:06:51 +02:00
Mike Lischke 4897bd8571 Simplified memory management for volatile parsing part.
There are 2 parts in an ANTLR genrated parser where memory is allocated: the actual parsing (with or w/o creating a parse tree) and the prediction part (via DFA/ATN etc.). The first part is highly volatile as it recreates parse tree instances (the class) on each parser run. In fact also lexer tokens belong to that part, but are already managed via unique pointers. This first part works without any smart pointer now. Instead there is a simple tracker class which holds all created references and frees them when the parser is reset or destroyed. This is a bit less optimal if the parser is set to create no parse tree, as created rule context objects are not freed immediately (like with smart pointers), but during reset. On the other hand this change gives (depending on the input) a nice speed up (0%-100%, after the warm up phase). Additionally memory consumption drops by a good amount.

Everything in the simulartors (and interpreters) remains unchanged. This is the shared prediction part.
2016-10-11 13:49:02 +02:00
Peter Boyer 145bfca692 Update lexer_action.go (#62) 2016-10-08 23:03:11 -04:00
Christian Gudrian 75dd652d7a fixed visitAtom implementation
This implementation somehow got lost in rebasing.
2016-10-07 20:37:38 +02:00
Christian Gudrian cb590334bb the visit methods now return a value 2016-10-06 22:52:19 +02:00
Christian Gudrian 0396561520 made visitAtom work for terminal nodes 2016-10-06 22:52:19 +02:00
Peter Boyer 10f15cabf8 errorNode() impl (#59) 2016-10-06 16:19:05 -04:00
Peter Boyer a5859fd54e Fix PredictionContext merge() typo (#61)
* Fix pred context typo

* Adjust array lengths
2016-10-06 16:18:18 -04:00
Mike Lischke 2e92b38bf7 Updated unit tests after last refactoring. 2016-10-06 17:17:36 +02:00
Peter Boyer 499d9d3f89 Print test arrays in java style (#50)
* Print string rule invocation stack array in java style

* regen runtime tests

* Another array print fix

* Fixes to print array of terminal nodes:

* regen tests
2016-10-05 14:52:42 -04:00
Mike Lischke fc5c1a29f9 Next attempt to get the C++ runtime compiled in Travis CI. 2016-10-04 10:17:59 +02:00
Mike Lischke bb5d7ef0b6 Set minimum cmake version to 3.1 for C++ target. 2016-10-04 10:09:31 +02:00
Mike Lischke c968b5209e alts outer-context flag/counter in ATNConfig is now unsiged.
A few more removals of no longer necessary casts.
2016-10-03 16:11:45 +02:00
Mike Lischke 0e0ecfafde Fixed a number of warnings for VS. 2016-10-03 14:50:22 +02:00
Mike Lischke 8280beb564 Refactoring of further int values, mostly converting them to size_t.
- Switched most symbolic signed constants to unsigned variants. Redefined EOF in particular to become (size)-1, to avoid having to use signed token type values.
- Introduced INVALID_INDEX for all previous -1 values to indicate e.g. not found indexes etc.
- Added 2 helpers to convert between symbolic and numeric form (mostly for intervals and toString()).
- Removed many no longer needed type casts to size_t.
- Updated templates for these changes.
- Limited runtime tests to C++ tests only, to see how Travis CI copes with that.
2016-10-02 16:51:57 +02:00
Mike Lischke de4df872fe Updates to get all tests green again.
- Had to take back some of the message beautifying, as this won't match expected runtime test output.
- Updated C++ test stg file for recent runtime changes. Regenerated tests (only one file changed actually).
- Reworked C++ test preparation. The C++ runtime is now built on first invocation of a test. This works only on Linux + OSX/macOS. Windows needs extra handling.
2016-10-01 12:43:31 +02:00
Mike Lischke 5c63bc9a07 Some clean up and xcode unit test fixes. 2016-09-30 10:59:44 +02:00
Mike Lischke 4394cd20b0 Merge branch 'master_upstream' 2016-09-29 16:50:57 +02:00
Mike Lischke f983fac7c7 Added support for hidden symbols on Linux and OSX.
It's now possible to hide all symbols by default and publish only those marked with the ANTLR4CPP_PUBLIC macro (same as for Windows). The included XCode project makes use of this option now.
2016-09-29 16:48:17 +02:00
Mike Lischke 28eb19f52e Explicitly delete copy c-tor and operator for DefaultErrorStrategy.
This class holds a vector of unique_ptr instances and hence cannot be copied.
2016-09-25 11:48:18 +02:00
Mike Lischke ee3e918e4e Exclude also vscode project data when generating the source zip. 2016-09-25 11:24:53 +02:00
Renata Hodovan 03d5fb1244 Make Python targets more pythonic.
The Python implementations are completely synchronous
with the Java version even if some of the constructs
can be expressed with simpler Python solutions. These are
typically the all, any, count, next builtins or the list
comprehensions, etc. Beside using them makes the code
clearer, they are also prefered by the standard and can
result in performance speedup. The patch contains such
equivalent transformations in the Python targets.
2016-09-25 10:33:27 +02:00
Mike Lischke 19345919de Bug fixes + XCode 8 updates
- Recommended project updates from XCode 8 applied.
- Bug: ANTLRInputStream not fully initialized when constructing from a stream.
- Account for more than one temporary error token in DefaultErrorStrategy.
2016-09-24 12:33:54 +02:00
ghosthope 9766dff5d8 Javascript performance. Was add new string.hash function - murmurhash3_gc.js (https://github.com/garycourt/murmurhash-js/blob/master/murmurhash3_gc.js). Performance of the function increased in two times 2016-09-23 16:57:40 +03:00
Christian Gudrian 46df58d5d7 The JavaScript ParseTreeVisitor now implements a depth-first traversal by default. 2016-09-22 08:28:11 +02:00
Vlad 5a0608be2e fix op filter error when trying to replaceSingleToken 2016-09-02 22:20:08 +03:00
Vlad ae435d06c8 add TokenStreamRewriter to Python2 runtime 2016-09-02 15:36:11 +03:00
Nathan Burles 6638883d9d Second parameter is end pointer, not size 2016-09-02 12:51:28 +01:00
Mike Lischke 6f62821573 More optimizations of the runtime.
- Lesser use of shared_ptr, e.g. in listeners and some loops.
- Removed useless access methods for children in ParseRuleContext. The child list is public. Fixed initialization for start and stop nodes.
- Simplified parent + child organization in Tree and all derived classes. Instead of using overridable functions in various descendants we have now central parent + child fields in the base tree class (where they belong actually, considering this is about forming a tree). Users have to cast to the appropriate classes if necessary.
- Removed obsolete getChildren() function in Trees helper. We can just return the child vector.
- Changed edges member to an unordered_map, as this is a sparse container. This speeds up certain grammars by 1000% (e.g. highly recursive expression rules) and avoids wasting a lot of memory. This change also simplifies handling significantly.
2016-08-22 12:12:22 +02:00
Mike Lischke ee2510e654 Output formatting in DefaultErrorStrategy and init of generated member vars.
- Had to escape tabs + linebreaks in DefaultErrorStrategy when generating a text representation. Also removed a few explicit string instance creations on the way.
- Member vars in parser context classes that take (optional) Token references must be initialized.
- Fixed a warning that copyFrom() would hide a virtual function in a ParserRuleContext.
- Another attempt to limit genrating double semicolons.
2016-08-10 08:55:17 +02:00
Renata Hodovan c15b0d9a36 Fix the initialization of conflictingAlts in execATN in Python targets.
The Java target initializes the conflictingAlt local variable
based on the conflictingAlts property of the target state.
However, the Python targets resets it to None. The patch makes the
initializations consistent.
2016-08-10 01:32:12 +02:00
Renata Hodovan 543a069440 Fix comparisons in ATNConfigSet.__contains__ of Python targets.
The __contains__ method of ATNConfigSet used different hashing
function (hash) for indexing the config dictionary than the
getOrAdd method (hashCodeForConfigSet) which filled it.
Furthermore, they also used different methods for comparing
ATNConfig objects. The patch makes them consistent.
2016-08-09 22:52:37 +02:00
Renata Hodovan 510e21d7cb Fix eofToken access in ListTokenSource.nextToken() by Python targets.
At the end of the nextToken() function, setting the eofToken field was
attempted without the 'self' keyword, resulting in accessing
and setting a new local and unused variable. The patch supplements
the missing 'self' keywords for both targets.
2016-08-09 15:32:12 +02:00
Mike Lischke 1869d9dac2 Reverting revision [a2d6b62] 2016-08-07 11:29:47 +02:00
Mike Lischke 7abfbc60c6 Change deployment scripts location and updated doc.
In order to be able to build with cmake and to have a complete source package including the demo the deployment scripts were moved to the root Cpp folder and updated.
Also the releasing-antlr.md doc file has been updated.
2016-08-04 17:03:34 +02:00
Mike Lischke ccc1fc4939 Fix for merge problems in PredictionContext.
Apparently context references can disappear while such a ref is held in the (temporary) merge cache. Hence we need to do a full ref for the merge cache key pair.

Closes issue #12.
2016-08-04 16:05:09 +02:00
Mike Lischke 78a12168bb Merge pull request #35 from nburles/fix-prediction-context
Without these tests, the demo crashes
2016-08-04 15:42:16 +02:00
Mike Lischke 07ceea1245 Some additional changes for removal of the == operator override. 2016-08-04 15:41:45 +02:00
Mike Lischke a41774ef0d Merge pull request #33 from nburles/remove-equality-override
Remove the std::operator== override in CPPUtils.h
2016-08-04 15:40:51 +02:00
Nathan Burles dc35da2a75 Only compare the addresses, as in Java 2016-08-04 13:39:07 +01:00
Nathan Burles fa0816d243 Without these tests, the demo crashes at PredictionContext.h:247 : k->hashCode() 2016-08-04 11:20:21 +01:00
Mike Lischke b05c8286b8 Corrected a warning suppression check. 2016-08-04 10:04:24 +02:00
Mike Lischke 8335d32b2d Various smaller changes to fix compilation and other problems.
- Added new rule to test grammar to get code generation for wildcard capture.
- Updated the Cpp.stg template file for that.
- Made the Unicode hack (auto extend 0xFFFF to 0x10FFFF) dependent on a parameter, so we only use this hack when deserializing an ATN. This avoids trouble with intervals used in other contexts (like string offsets).
- Added a few operator != overloads, to fix compilation after recent changes.
- Simplified operands comparison in SemanticContext (uses the Arrays class now). Some cleanup in that class too.
- The abstract parse tree visitor now uses const& for Any references, to avoid reallocating new instances over and over again.
- The lexer counts syntax errors the same way as the parser does. So we can directly determine if there was any error by simply examining that (which avoids having to use a temporary listener).
2016-08-04 09:28:13 +02:00
Nathan Burles db8339b458 Leave spaces alone unless escaped spaces requested 2016-08-02 14:56:10 +01:00
Nathan Burles a1d61541b7 Remove the std::operator== override in CPPUtils.h 2016-08-02 09:00:10 +01:00
Mike Lischke 183b7ce0a9 Merge pull request #30 from nburles/compare-contents-not-just-addresses
Compare contents not just addresses
2016-08-01 18:17:42 +02:00
Mike Lischke 63b5e61c15 Merge pull request #31 from nburles/simpler-hash-calls
There is no need to call ->hashCode() explicitly
2016-08-01 18:01:28 +02:00
Mike Lischke 8bbdbe0371 Merge pull request #28 from nburles/fix-intervalset-comparisons
Fixes comparisons of IntervalSets
2016-08-01 17:45:45 +02:00
Mike Lischke f3110fdd22 Merge pull request #27 from nburles/fix-ATN-serialization
Fixes ATN serialization
2016-08-01 17:45:03 +02:00
Nathan Burles 64f1a654bd There is no need to call ->hashCode() explicitly 2016-08-01 16:40:15 +01:00
Mike Lischke 3705e1b3fd Consistent formatting in Any.h + converted CPPUtils.cpp to utf-8. 2016-08-01 17:36:43 +02:00
Nathan Burles 198da78c98 Compare contents in SemanticContext::*::operator== 2016-08-01 16:32:51 +01:00
Nathan Burles 739bf3a756 Compare contents in LexerATNConfig::operator== 2016-08-01 16:31:48 +01:00
Nathan Burles 903fa473c5 Compare contents in ATNConfigSet::operator== 2016-08-01 16:26:37 +01:00
Nathan Burles a025c9eefc Compare contents in ATNConfig::operator== 2016-08-01 16:25:37 +01:00
Mike Lischke c60f1bb8f9 Fixed a bug + raised warning level in Visual Studio
- Fixed an endless recursion in Any, caused by the removal of one of the (apparently) unneeded copy constructors. As it turned out both are required. That leads to a warning in VS about a duplicate copy c-tor, which had to be suppressed therefore.
- Raised the warning level to W4 in both VS 2013 and VS 2015 and fixed all warnings resulting from that.
2016-08-01 16:47:17 +02:00
Nathan Burles 3ee53a79db Fixes comparisons of IntervalSets 2016-08-01 09:57:51 +01:00
Nathan Burles 3535830c98 Fixes ATN serialization 2016-08-01 09:54:10 +01:00
Mike Lischke 282e193e6a Corrected an include. 2016-07-31 16:10:39 +02:00
Mike Lischke eee86d8292 Small updates for VS 2013/2015.
Updated the demo project to also use static/dynamic libs like the runtime and fixed a few warnings in the Any class.
2016-07-31 13:28:01 +02:00
Mike Lischke 8a5f6815fe Rework of the visitor implementation
The translation from Java generics to templates in C++ lead to the need of virtual template functions, which is not supported by C++. Instead we use now the Any class for results of visits and no longer need templates for that part.
2016-07-30 20:03:27 +02:00
Tim O'Callaghan 7724dd2cd5 external project cmake example, needed set C++ 11 2016-07-24 22:13:17 +02:00
Tim O'Callaghan d6d50457ff Updated CMake for demo to:
- Only require JRE
- Support out of tree build from antlr repostitory
- Support Superproject build with ExternalAntlr4Cpp cmake module

ExternalAntlr4Cpp module has quickstart documentation for people to be
able to start working quicly with antlr4cpp from the base demo sources
see source file for example.
2016-07-24 21:58:45 +02:00