Commit graph

105 commits

Author SHA1 Message Date
Anders Kaseorg
56da6c91b7 Fix parsing of tuple with named expression as context manager
Because the ‘with’ item grammar disallows named expressions, CPython
parses ‘with (a := 0, b := 1):’ as a tuple rather than two ‘with’
items.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-24 13:15:53 -08:00
harupy
6fc0d42d4a Fix IfExp location 2022-12-25 00:33:02 +09:00
Anders Kaseorg
b20571ad0f Simplify parenthesized context manager parsing with LALRPOP conditions
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-24 23:13:10 +09:00
harupy
2c61497074 Fix the location of BinOp 2022-12-21 22:05:05 +09:00
Jim Fasarakis-Hilliard
5f4309c62c Merge pull request #4340 from harupy/fix-locations-of-parethesized-expressions
Fix the start and end locations of `Tuple`
2022-12-18 15:17:40 +02:00
harupy
af7aac70df Fix locations of parethesized expressions 2022-12-18 20:53:30 +09:00
Anders Kaseorg
408d15f608 Remove unnecessary boxing of ASDL product children
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-14 02:30:02 -08:00
Dimitris Fasarakis Hilliard
f126b79b93 Fix end location in with statements. 2022-12-13 13:28:17 +02:00
Jim Fasarakis-Hilliard
ca1fe40701 Merge pull request #4327 from harupy/fix-end-location-body
Fix end location of compound statements
2022-12-13 12:30:21 +02:00
Charlie Marsh
36f5f5affb Set ExprContext::Store on parenthesized with expressions 2022-12-12 09:09:15 -05:00
harupy
f5ce9517fd Update snapshot 2022-12-12 22:26:03 +09:00
harupy
d6cd733423 Resolve conflict 2022-12-12 22:16:46 +09:00
Anders Kaseorg
bfd847d04c Parse Python 3.9+ parenthesized context managers
Since the upstream grammar for this is not LR(1), we abuse LALRPOP
macros and the Into/TryInto traits to build a cover grammar that
converts to either tuples or `with` items after additional validation.
It’s annoying and ugly, but something like this is basically our only
option short of switching to a more powerful parser algorithm.

Fixes #4145.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-12 00:47:33 -08:00
harupy
c79cc34b37 Fix other compound statements 2022-12-12 01:10:42 +09:00
harupy
2d75aeb276 Fix end location of nodes containing body 2022-12-11 12:35:28 +09:00
harupy
2b91ffb3ae Refactor 2022-12-10 22:01:42 +09:00
harupy
d45ac01ebe Fix 2022-12-10 18:45:36 +09:00
harupy
9111cd8a3d Fix plain string 2022-12-10 18:09:26 +09:00
harupy
dd01ab1c9e Fix the end location of an implicitly-concatenated string 2022-12-10 17:49:57 +09:00
Jeong YunWon
009f2c4d38 Merge pull request #4310 from youknowone/fix-clippy
Fix nightly clippy warnings
2022-12-05 12:57:01 +09:00
Jeong YunWon
9250260e20 Fix nightly clippy warnings 2022-12-05 12:18:16 +09:00
harupy
8e0bef913c add tests 2022-12-04 05:59:51 +09:00
yt2b
af4fb9ed52 use bool.then 2022-11-24 09:23:20 +09:00
yt2b
fde6b61270 restore if expression 2022-11-23 11:30:54 +09:00
yt2b
6ae42e249b Refactor lexer functions 2022-11-22 21:10:19 +09:00
yt2b
1fe79331f3 Add test 2022-11-21 22:36:05 +09:00
Charlie Marsh
2fb2224632 Use match 2022-11-20 23:41:52 -05:00
Charlie Marsh
d9b7daa844 Use rustc-hash 2022-11-20 15:30:19 -05:00
Charlie Marsh
7f44441183 Implement some minor performance optimizations 2022-11-20 13:33:20 -05:00
Bongjun Jang
7cdcc13341 Refactor lexer struct (#4257) 2022-11-19 21:43:34 +09:00
Jim Fasarakis-Hilliard
54af02c20c Merge pull request #4266 from charliermarsh/charlie/comments
Implement Tok::Comment
2022-11-07 23:20:15 +02:00
Charlie Marsh
ac1821b23d Set comparator start location to beginning of comparison 2022-11-07 12:24:14 -05:00
Charlie Marsh
c3f246693b Implement Tok::Comment 2022-11-07 10:33:55 -05:00
dvermd
1dfa2e5239 improve col_offset in new line and lalr 2022-10-26 21:30:51 +02:00
dvermd
de7acf6f99 improve fstring parser
part of: #1671
2022-10-26 21:15:24 +02:00
dvermd
ac77f7f501 Fix ast types' _fields and use 0-based column 2022-10-27 03:09:38 +09:00
Charlie Marsh
0cd0a0adc8 Add expression context parsing 2022-10-17 15:20:33 -04:00
Charlie Marsh
efad01d976 Remove parse_program_tokens 2022-10-17 12:04:30 -04:00
Charlie Marsh
452d28719f Expose a method to parse AST from tokens directly 2022-10-17 09:39:48 -04:00
Charlie Marsh
8a32bab00a Add end locations to all nodes (#4192) 2022-10-17 13:18:30 +09:00
Charlie Marsh
ca62bd1593 Start simple string at quote mark 2022-10-16 11:25:46 -04:00
Charlie Marsh
15e2ac3fd7 Start string location at kind or quote prefix 2022-10-15 11:03:50 -04:00
dvermd
eede189959 Refactor fstrings (#4188) 2022-10-14 12:16:34 +09:00
Jeong YunWon
83032d412e Merge pull request #4116 from charliermarsh/charlie/f-string
Avoid creating unused JoinedStr in FStringParser
2022-08-23 19:30:36 +09:00
Jeong YunWon
8d39d5362b parser::Mode from compile::Mode 2022-08-23 05:08:24 +09:00
Jeong YunWon
122382cb53 use thiserror 2022-08-23 05:08:24 +09:00
Jeong YunWon
a1640e4aa1 new_syntax_error working without full compiler
Fix #4100
2022-08-23 05:08:24 +09:00
Jeong YunWon
5b50c547d6 Integrate CompileError to compiler-core::BaseError 2022-08-22 23:18:41 +09:00
Jeong YunWon
1192a11d39 integrate CodegenError to compiler-core::Error 2022-08-22 18:43:03 +09:00
Jeong YunWon
9d67b944cf Integrate ParseError to compiler-core::Error 2022-08-22 16:28:08 +09:00