Commit Graph

159 Commits

Author SHA1 Message Date
Jim Fasarakis-Hilliard d691527ead Merge pull request #4402 from harupy/remove-unreachable-if
Remove unreachable code in `compiler/parser/src/string_parser.rs`
2023-01-02 17:05:45 +02:00
harupy 40e2150f7e Merge match arms in parse_formatted_value 2023-01-02 23:16:51 +09:00
harupy 92bf96608c Fix match 2023-01-02 22:54:48 +09:00
harupy fac6a857f6 Simplify code using match 2023-01-02 22:26:09 +09:00
harupy 68586f8e3c Remove unreachable code in compiler/parser/src/string_parser.rs 2023-01-02 20:48:40 +09:00
Jeong YunWon f8787a9377 Move (c)format basic implementations to rustpython-common 2023-01-02 20:21:36 +09:00
Bijan Naimi 530a20cc96 forgot to add formatted errors.rs 2023-01-01 17:28:49 -08:00
Bijan Naimi 6cb57b2075 changed the shell logic for handling indents 2023-01-01 15:41:51 -08:00
Dimitris Fasarakis Hilliard 92b2574d52 Move tests for with into parser. 2023-01-01 21:36:07 +02:00
Jim Fasarakis-Hilliard 95fb938bd6 Merge pull request #4389 from harupy/4384-follow-up
Follow-up for #4384
2023-01-01 14:53:54 +02:00
harupy 9683314264 Remove unreachable code 2023-01-01 17:43:25 +09:00
harupy d9bbeeb9b3 Fix NamedExpr location 2022-12-31 23:32:08 +09:00
harupy 68116d5c11 Move tests 2022-12-31 12:15:33 +09:00
Jeong YunWon e164a41723 Merge pull request #4373 from andersk/named
Allow named expression in subscript and set comprehension
2022-12-31 10:58:09 +09:00
Jeong YunWon aa32a73c5b Merge pull request #4379 from harupy/refactor-FStringParser
Refactor `FStringParser`
2022-12-31 10:56:52 +09:00
Jeong YunWon 9d7d629cef Merge pull request #4384 from harupy/parse-formatted-value
Fix the location of `FormattedValue`
2022-12-31 10:52:44 +09:00
harupy 439298e735 Fix FormattedValue location 2022-12-30 21:39:29 +09:00
anilbey 16173bf581 Update compiler/parser/src/error.rs
Co-authored-by: fanninpm <fanninpm@miamioh.edu>
2022-12-29 22:56:34 +01:00
Anil Tuncel 7e7b2eadee format using cargo fmt 2022-12-29 22:15:44 +01:00
Anil Tuncel 80116c768d arg name to be written upon duplicate kwargs error #4381 2022-12-29 22:06:41 +01:00
Nick Liu 200390c1ab format code 2022-12-29 22:49:26 +08:00
Nick Liu 24d2ab8b0a use is_none 2022-12-29 22:49:26 +08:00
Nick Liu 41f21a7b5d add arg_name in duplicate argument error msg 2022-12-29 22:49:26 +08:00
Nick Liu 63e4a36e27 added check: named arguments must follow bare star 2022-12-29 22:49:26 +08:00
Nick Liu 15ab44384c added lex error: DuplicateArguments 2022-12-29 22:49:26 +08:00
Jim Fasarakis-Hilliard 5380b85579 Merge pull request #4367 from andersk/star-order
Prohibit starred arguments after double-starred arguments
2022-12-29 16:27:16 +02:00
Harutaka Kawamura b707f53f23 Update compiler/parser/src/fstring.rs
Co-authored-by: Zgarbul Andrey <zgarbul.andrey@gmail.com>
2022-12-29 08:10:33 +09:00
Anders Kaseorg 6439867f78 Allow named expression in set comprehension: `{a := b for c in d}`
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-28 09:57:32 -08:00
Anders Kaseorg 1904d095f9 Allow named expression in subscript: `a[b := c]`
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-28 09:57:32 -08:00
harupy 7e8f683808 Rename 2022-12-29 01:01:41 +09:00
harupy 37b1894834 Clean up FStringParser 2022-12-29 00:08:59 +09:00
Jim Fasarakis-Hilliard 201d08583a Merge pull request #4377 from andersk/duplicate-from
Remove duplicate declaration of "from" token
2022-12-28 11:19:54 +02:00
Anders Kaseorg 107b2e11ae Remove duplicate declaration of "from" token
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-27 18:56:24 -08:00
Anders Kaseorg 661b210391 Prohibit starred arguments after double-starred arguments
CPython prohibits ‘f(**kwargs, *args)’; we should too.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-27 12:49:50 -08:00
harupy 9aed9143fe Refactor parse_formatted_value 2022-12-28 00:23:25 +09:00
harupy c21d0d9283 Fix make_tokenizer_located 2022-12-27 21:54:18 +09:00
Jeong YunWon 313fd7d28c Merge pull request #4359 from yt2b/check_bom
Add BOM check
2022-12-26 16:03:51 +09:00
Jeong YunWon 3aa0096212 Merge pull request #4358 from harupy/fix-slice-location
Fix `Slice` location
2022-12-26 16:03:09 +09:00
Jeong YunWon 53dec88029 Merge pull request #4356 from andersk/with-tuple-named
Fix parsing of tuple with named expression as context manager
2022-12-26 16:02:17 +09:00
yt2b bd0c15d34e Fix comment 2022-12-26 09:30:12 +09:00
yt2b ce0be73841 Add BOM check 2022-12-25 11:15:29 +09:00
harupy b2ac4f60f1 Fix slice location 2022-12-25 09:37:07 +09:00
Anders Kaseorg 1fdfa5fe1b 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 c0f390ebc6 Fix IfExp location 2022-12-25 00:33:02 +09:00
Anders Kaseorg c387b5d523 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 ea95e1a715 Fix the location of BinOp 2022-12-21 22:05:05 +09:00
Jim Fasarakis-Hilliard c16e08d59b 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 ff00460ff4 Fix locations of parethesized expressions 2022-12-18 20:53:30 +09:00
Anders Kaseorg f4672e4256 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 6e89b3ab1a Fix end location in with statements. 2022-12-13 13:28:17 +02:00
Jim Fasarakis-Hilliard 6a174dae45 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 8936ab2f8d Set ExprContext::Store on parenthesized with expressions 2022-12-12 09:09:15 -05:00
harupy 165b979733 Refactor 2022-12-12 22:36:34 +09:00
harupy 06c92bb899 Update snapshot 2022-12-12 22:26:03 +09:00
harupy 1a657731dd Format 2022-12-12 22:18:26 +09:00
harupy d8cfc7e84f Resolve conflict 2022-12-12 22:16:46 +09:00
harupy de2e88656e Address comments
Signed-off-by: harupy <hkawamura0130@gmail.com>
2022-12-12 22:14:05 +09:00
Anders Kaseorg 052dee72b8 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
Anders Kaseorg 751f9d304f Split and simplify some LALRPOP rules
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-12-11 22:02:08 -08:00
harupy d6f9dd0763 Use method chaining 2022-12-12 10:24:00 +09:00
harupy 5fc8c4d0b1 Fix other compound statements 2022-12-12 01:10:42 +09:00
harupy 1b7a272b77 Fix end location of nodes containing body 2022-12-11 12:35:28 +09:00
harupy 3abdc87076 Refactor 2022-12-10 22:01:42 +09:00
harupy 99b02be35a Fix 2022-12-10 18:45:36 +09:00
harupy f99167d4ed Fix plain string 2022-12-10 18:09:26 +09:00
harupy 816e1e711c Fix the end location of an implicitly-concatenated string 2022-12-10 17:49:57 +09:00
Jeong YunWon e2b28d07c8 Merge pull request #4310 from youknowone/fix-clippy
Fix nightly clippy warnings
2022-12-05 12:57:01 +09:00
Jeong YunWon 28785784b2 Fix nightly clippy warnings 2022-12-05 12:18:16 +09:00
harupy 6f6b7b2312 add tests 2022-12-04 05:59:51 +09:00
harupy 93cb05ebda Fix location 2022-12-04 05:45:15 +09:00
yt2b e8200ab674 use bool.then 2022-11-24 09:23:20 +09:00
yt2b 492f09298f restore if expression 2022-11-23 11:30:54 +09:00
yt2b 35eea0b8ec Refactor lexer functions 2022-11-22 21:10:19 +09:00
yt2b 1eeddb521e Add test 2022-11-21 22:36:05 +09:00
Charlie Marsh 96a50810a6 Use match 2022-11-20 23:41:52 -05:00
Charlie Marsh 51b7dbb89c Use rustc-hash 2022-11-20 15:30:19 -05:00
Charlie Marsh 28a8c3a062 Implement some minor performance optimizations 2022-11-20 13:33:20 -05:00
Bongjun Jang 4e5626dfd5 Refactor lexer struct (#4257) 2022-11-19 21:43:34 +09:00
Jeong YunWon f979d8dbc3 Apply let-else statements 2022-11-10 15:39:31 +09:00
Jim Fasarakis-Hilliard cc084b4fec Merge pull request #4266 from charliermarsh/charlie/comments
Implement Tok::Comment
2022-11-07 23:20:15 +02:00
Charlie Marsh bbeec36fdb Set comparator start location to beginning of comparison 2022-11-07 12:24:14 -05:00
Charlie Marsh b6c230f3ca Implement Tok::Comment 2022-11-07 10:33:55 -05:00
dvermd a5b59f3c9d improve col_offset in new line and lalr 2022-10-26 21:30:51 +02:00
dvermd d5a208ca9d improve fstring parser
part of: #1671
2022-10-26 21:15:24 +02:00
dvermd fa41a1e2f6 Fix ast types' _fields and use 0-based column 2022-10-27 03:09:38 +09:00
Charlie Marsh 952d70b9d1 Add expression context parsing 2022-10-17 15:20:33 -04:00
Charlie Marsh 02953b9fe6 Remove parse_program_tokens 2022-10-17 12:04:30 -04:00
Charlie Marsh 8adc74fe26 Expose a method to parse AST from tokens directly 2022-10-17 09:39:48 -04:00
Charlie Marsh 1cc342e4ed Add end locations to all nodes (#4192) 2022-10-17 13:18:30 +09:00
Charlie Marsh 519718e65d Start simple string at quote mark 2022-10-16 11:25:46 -04:00
Charlie Marsh 3397737a76 Start string location at kind or quote prefix 2022-10-15 11:03:50 -04:00
dvermd 6211a3a3a8 Refactor fstrings (#4188) 2022-10-14 12:16:34 +09:00
fanninpm e64d7d196d Merge pull request #4186 from andersk/arithmetic
Spell “arithmetic” correctly
2022-09-30 09:29:36 -04:00
Anders Kaseorg f8b45e48e1 Spell “arithmetic” correctly
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-09-28 17:58:30 -07:00
Jeong YunWon f99e4789ed temporary fix of parser build 2022-09-21 16:49:35 +09:00
Jeong YunWon 86b847204e better parser build experience 2022-09-21 16:47:06 +09:00
Jeong YunWon b21ed24025 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 bfe4795b6c parser::Mode from compile::Mode 2022-08-23 05:08:24 +09:00
Jeong YunWon 40690b9761 use thiserror 2022-08-23 05:08:24 +09:00
Jeong YunWon 1fd898c14c new_syntax_error working without full compiler
Fix #4100
2022-08-23 05:08:24 +09:00