Dave Halter
e723b3e74b
Refactor the ambiguity tests a bit, see #70
2019-07-13 20:15:56 +02:00
Benjamin Woodruff
0032bae041
Make pgen2's grammar ambiguity detection handle more cases
...
Under the old implementation,
```
outer: A [inner] B C
inner: B C [inner]
```
wouldn't get detected as the ambiguous grammar that it is, whereas
```
outer: A rest
rest: [inner] B C
inner: B C [inner]
```
would.
This would manifest itself as non-determinism in the DFA state
generation. See the discussion #62 on for a full explanation.
This modifies the ambiguity detection to work on a broader class of
issues, so it should now hopefully detect all cases where the given
grammar is ambiguous.
At some point, we could extend this logic to allow developers to
optionally set precedence of grammar productions, which could resolve
ambiguities, but that's not a strict requirement for parsing python.
2019-07-13 20:04:32 +02:00
prim
93ddf5322a
parse long number notation ( #72 )
...
* parse long number notation
* parse long number notation
2019-06-02 11:14:15 +02:00
Dave Halter
f66e47c540
Check better for more transitions
2018-06-26 22:53:02 +02:00
Dave Halter
e20f2069ba
Move the grammar to a fitting file.
2018-06-26 10:20:05 +02:00
Dave Halter
a46ecbb499
Fix an ambiguity issue
...
Unfortunately had to refactor most of the transition generation
2018-06-26 00:58:19 +02:00
Dave Halter
da5aa8a2ab
Better detection of ambiguities
2018-06-25 01:56:02 +02:00
Dave Halter
fa0bf4951c
Fix string prefixes for Python2.
2017-09-01 00:20:24 +02:00
Dave Halter
db1079a7fe
Actual support fo backticks.
2017-08-28 18:32:48 +02:00
Dave Halter
476d5fb0d1
Some Python2.7 fixes.
2017-08-15 19:34:47 +02:00
Dave Halter
d6c624bd34
Finally fix Python 2.6.
...
Also added a syntax for 2.6. There are some thing that just don't work in 2.6.
2017-07-31 21:33:59 +02:00
Dave Halter
a13f1a18a9
A dict unpacking test.
2017-07-23 19:55:05 +02:00
Dave Halter
1ed3cac7c0
Move some things around to allow checking for different versions.
2017-07-22 15:47:04 +02:00
Dave Halter
5e65bd2aaf
Remove xfail tests that didn't make any sense.
2017-07-19 18:15:23 +02:00
Dave Halter
78c371f73a
Refactor the version info to use a tuple, always.
2017-07-19 09:09:33 +02:00
Dave Halter
688dfaad24
Make ellipsis work for the differences between 2 and 3.
2017-07-16 18:49:19 +02:00
Dave Halter
b618c99b08
Octal fixes.
2017-07-12 22:28:54 +02:00
Dave Halter
70de06ed87
Fix annotations in grammar2.7.
2017-07-12 21:38:11 +02:00
Dave Halter
d7d1d67828
Refactor some tests to make sure cross parsing versions works.
2017-07-12 21:32:16 +02:00
Dave Halter
abc4852bd4
Write an abstraction to test if source code is valid for a certain python version or not.
2017-07-12 18:58:43 +02:00
Dave Halter
d3115acb33
Refactor a parse call.
2017-07-12 10:03:48 +02:00
Dave Halter
75d41c09cd
Trying to run more tests in all versions against all versions.
2017-07-12 09:37:47 +02:00
Dave Halter
333046c253
load_python_grammar -> load_grammar.
2017-05-25 13:28:24 -04:00
Dave Halter
7d3438c94d
Move the parse function to the grammar.
2017-05-22 14:06:40 -04:00
Dave Halter
23d1470618
Add a more API focused grammar.
...
This makes it so we don't have to expose all the details of a pgen grammar to the user.
2017-05-21 17:02:15 -04:00
Dave Halter
799e99360c
Remove the dependency to unittest.
2017-05-17 14:29:55 -04:00
Dave Halter
206dfd113b
Use jedi less in the tests.
2017-05-15 13:53:30 -04:00
Dave Halter
7445c303e3
A test suite imported from jedi.
2017-05-11 09:43:37 -04:00