Commit Graph

68 Commits

Author SHA1 Message Date
parrt 6215f18ec3 rename 4.6.1 to 4.7 everywhere 2017-02-23 14:48:58 -08:00
Ben Hamilton fd4246cf3f Implement new extended Unicode escape \u{10ABCD}. Bump UUID. Add lots more tests. 2017-02-23 09:39:44 -08:00
Ben Hamilton b190b6eca6 MAX_CHAR_VALUE to 0x10FFFF 2017-02-16 09:46:09 -08:00
Ben Hamilton 2c447a2b75 Python 2 and Python 3 support for lexer and parser output to a file instead of stdout 2017-02-10 13:11:24 -08:00
Ben Hamilton d9d4d8c6c4 Restore Python3 FileStream to ascii/strict 2017-01-30 08:49:32 -08:00
Ben Hamilton 99ed4b6de6 Python StdinStream/FileStream -> UTF-8 2017-01-30 07:32:30 -08:00
Eric Vergnaud f02d8c1a4b fix #1584 2017-01-19 21:44:56 +08:00
parrt 2629433830 bump version to 4.6.1 in all files. 2016-12-28 12:03:43 -08:00
Terence Parr b57843d983 Merge pull request #1546 from sharwell/fix-1545
Fix multiple problems with optional block bypass at end of rule
2016-12-27 21:47:12 -08:00
Sam Harwell 24b20e236f Remove redundant isExpectedToken check
We know by the time this check was reached that neither EPSILON nor the LL(1)
symbol are in the lookahead set from the current state. Since EPSILON is not
included, the state cannot see to the end of the rule and thus nextTokens
contains the complete set of valid LL(1) symbols from the current state. It is
therefore impossible for the LL(1) symbol to be "expected" when considering
lookahead with full context.
2016-12-27 17:21:25 -06: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
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
Eric Vergnaud 6398a06fba fixes #1530 and #1531 2016-12-20 23:27:08 +08:00
parrt c4c2966dbd update doc 2016-12-15 20:42:29 -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
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
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 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 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 efc3f82f38 rm redundant license files 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
Eric Vergnaud 6e071f4950 implement LR optimisation in Python3 + align naming + DFAState ctor bugs 2016-11-30 00:40:42 +08:00
parrt 9d3415ed8a Merge branch 'master' of git://github.com/ghosthope/antlr4 into ghosthope-master 2016-11-25 12:28:14 -08:00
ghosthope 04e9078dd9 from master 2016-11-23 13:58:43 +03: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 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
parrt d9490e16da undo damage done by intellij pulling out imports from python :( 2016-11-19 18:29:04 -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 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 ffaedd209d Set version in code to 4.6. 2016-11-06 11:21:06 -08: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
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
Eric Vergnaud 26c409103d Fix #1217
The root cause was that ATNConfigSet was not using he required custom hashing strategy for ParserATNSimulator.
The commit includes a number of additional fixes, related to code that was never executed before due to the root cause.
A similar issue is also likely to exist in the JavaScript runtime, I'll fix it later.
2016-06-23 15:51:39 +02:00
Renata Hodovan 4e3325c9da Fix initialization of ATNConfig when computing SLL prediction
termination condition.

The PredictionMode::hasSLLConflictTerminatingPrediction method aims to
create ATNConfig objects from another ATNConfig and SemanticContext
objects. In case of the Python targets, the initialization
happened without keyword arguments. Since the called __init__
method had default values set for all the parameters, the parameter
substitution worked by indices. As a consequence, the first ATNConfig
parameter was wrongly interpreted as an ATNState and the SemanticContext as
an alternative. The patch fixes this by adding the missing keywords.
2016-05-06 15:59:55 +02:00
Renata Hodovan 54168905b0 Fix typo in the parser of the Python3 runtime.
The last parameter name of Parser::enterRule in the Python3 runtime
was mistakenly combined with its type. The patch fixes this.
2016-04-30 12:14:31 +02:00
parrt cd0913712a set code string versions to 4.5.3 2016-03-30 16:21:50 -07:00
parrt 9e98714a1d Add ability to set parse tree internal node super class with option contextSuperClass. Provide impl in Java target that has altNum backing field. Add test across targets to set/get alt num. Fixes #1152. 2016-03-30 11:00:47 -07:00