Commit graph

180 commits

Author SHA1 Message Date
DimitrisJim
8cb2cca9fb Use insta to verify values. 2023-02-28 20:00:47 +09:00
Jeong YunWon
268f3ad004 Use git version of unicode_names2 to avoid alias search failure 2023-02-28 20:00:47 +09:00
Charlie Marsh
fdea016ea7 Use proper locations for sub-expressions in constant matches 2023-02-26 23:10:38 -05:00
Charlie Marsh
8b9f57906a Allow type variable tuple for *args 2023-02-23 08:39:59 -05:00
Jeong YunWon
1404660364 Merge pull request #4552 from charliermarsh/charlie/loc
Limit match range to end of last statement
2023-02-23 02:11:42 +09:00
Jeong YunWon
822f0936ca Merge pull request #4543 from youknowone/flatten-parser
Flatten parser interface
2023-02-23 02:09:46 +09:00
Charlie Marsh
e17437d935 Limit match range to end of last statement 2023-02-22 11:25:50 -05:00
Charlie Marsh
ba9e7c9607 Allow trailing commas in MappingPattern 2023-02-22 10:02:41 -05:00
Jeong YunWon
30f85787a7 use super::* from tests submodules 2023-02-22 21:01:39 +09:00
Jeong YunWon
90da5ba54a remove #[macro_use] 2023-02-22 20:41:27 +09:00
Jeong YunWon
bf3f3eca62 Flatten rustpython_parser interface 2023-02-22 20:32:31 +09:00
Jeong YunWon
a8d4de27ed make_tokenizer -> lex to integrate terms
we don't distinguish scanner or tokenizer from lexer
2023-02-22 20:28:15 +09:00
Jeong YunWon
019faeac24 Fix ModeParseError message 2023-02-22 20:28:03 +09:00
Jeong YunWon
aed03c5209 Break down rustpython_parser::error module
because it doesn't share any common errors but specific error for each sub module
2023-02-22 20:28:01 +09:00
Charlie Marsh
62d88e0b86 Always wrap in SoftKeywordTransformer 2023-02-21 19:18:42 -05:00
Charlie Marsh
82b91fe9aa Expose SoftKeywordTransformer on public API 2023-02-21 19:00:32 -05:00
Jim Fasarakis-Hilliard
6e9c759cf7 Merge pull request #4519 from charliermarsh/charlie/match
Add support for match statements to parser
2023-02-21 19:43:28 +02:00
Jeong YunWon
304f6bc38e Merge pull request #4531 from charliermarsh/charlie/exception-groups
Implement except* syntax
2023-02-21 13:20:18 +09:00
Charlie Marsh
2a86dbd644 Implement except* syntax 2023-02-21 12:19:54 +09:00
Charlie Marsh
4c559a9a51 Allow starred expressions in subscripts 2023-02-20 17:59:35 -05:00
Charlie Marsh
77e827acd5 Update compiler/parser/src/soft_keywords.rs
Co-authored-by: Jim Fasarakis-Hilliard <d.f.hilliard@gmail.com>
2023-02-20 15:03:39 -05:00
Jeong YunWon
591036785c clean up soft-keyword transform 2023-02-20 15:03:39 -05:00
Charlie Marsh
f1f31324d0 Use muiltipeek 2023-02-20 15:03:39 -05:00
Charlie Marsh
8649bf6f8f Add support for match statements to parser 2023-02-20 15:03:39 -05:00
Jeong YunWon
24f4a0ed8f Merge pull request #4490 from DimitrisJim/function_parser
Add tests, some comments, to function.rs.
2023-02-13 20:00:35 +09:00
Jeong YunWon
fb4bc89812 Merge pull request #4492 from DimitrisJim/doc_parser_uno
Document parser crate.
2023-02-13 17:25:14 +09:00
Dimitris Fasarakis Hilliard
66cbe3fe62 Document parser crate. 2023-02-12 17:58:19 +02:00
Dimitris Fasarakis Hilliard
7714c5f517 Add tests, some comments, to function.rs. 2023-02-11 23:07:57 +02:00
Dimitris Fasarakis Hilliard
e6f361d2a5 Refactor: Join string and string_parser. 2023-02-11 18:05:06 +02:00
Jeong YunWon
4ee4fcf407 Add test_generator_expression_argument 2023-02-11 05:20:39 +09:00
Charlie Marsh
dc78f6033b Use entire range for generators-as-arguments 2023-02-10 10:39:40 -05:00
Dimitris Fasarakis Hilliard
31e0962c66 Document lexer. 2023-02-07 21:43:57 +02:00
Dimitris Fasarakis Hilliard
639e8fc52f Move NewLineHandler inline, don't check each character twice. 2023-02-07 20:58:53 +02:00
Jeong YunWon
00dc7ec709 use workspace dependencies 2023-02-06 15:30:38 +09:00
Dimitris Fasarakis Hilliard
bff9884df1 Hint that the unwrap should always succeed. 2023-02-01 12:17:33 +02:00
Dimitris Fasarakis Hilliard
c8005694c7 Eat for comma. 2023-01-31 12:26:05 +02:00
Dimitris Fasarakis Hilliard
d4de01c500 Add initial capacities, use u32s for indents/spaces. 2023-01-31 12:26:05 +02:00
Dimitris Fasarakis Hilliard
2a4d44d667 Don't call is_emoji_presentation for each invocation of consume_normal 2023-01-31 12:26:05 +02:00
Dimitris Fasarakis Hilliard
f4831432f9 Match on ascii start/continuation characters before calling functions. 2023-01-31 12:26:05 +02:00
Aarni Koskela
bdc0e257b1 Bump phf to 0.11 series
string_cache is still using phf_shared 0.10.0 though
2023-01-25 19:58:43 +02:00
Jeong YunWon
1304e4ba2f Merge pull request #4449 from harupy/fix-dict-spread-in-dict
Fix AST generated from a dict literal containing dict unpacking
2023-01-22 20:44:26 +09:00
Anders Kaseorg
b93b23b922 Fix end location for elif blocks
Since we parse an `elif:` block as an `If` node, its location should
include its `orelse` node like it would for an `if:` block.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2023-01-17 22:39:44 -05:00
harupy
f260785da4 Remove useless String::from
Signed-off-by: harupy <hkawamura0130@gmail.com>
2023-01-16 21:27:57 +09:00
harupy
4f32bacf9c Rename test 2023-01-15 23:36:07 +09:00
harupy
a7f1904564 Improve test 2023-01-15 16:53:13 +09:00
harupy
2f4fe8b380 Remove commented-out code 2023-01-15 16:10:51 +09:00
harupy
52d2e25601 Fix dict spreading in dict literal 2023-01-15 13:01:59 +09:00
Ran Benita
bb2abd1cbc Fixup parse_tokens after "Add NonLogicalNewline token"
I only updated `parse()` to ignore `NonLogicalNewline`, didn't notice
it's also needed in `parse_tokens()`.
2023-01-14 11:52:33 +02:00
Ran Benita
5cc208cc43 Add NonLogicalNewline token
This token is completely ignored by the parser, but it's useful for
other users of the lexer, such as the Ruff linter. For example, the
token is helpful for a "trailing comma" lint.

The same idea exists in Python's `tokenize` module - there is a NEWLINE
token (logical newline), and a NL token (non-logical newline).

Fixes #4385.
2023-01-12 16:47:12 +02:00
Martin Fischer
fea57bcb04 Fix docs.rs build for rustpython-parser
docs.rs failed to build the documentation of the recently released
rustpython-parser 0.2.0 because the build.rs script couldn't write the
parser.rs file because docs.rs builds the documentation in a sandbox
with a read-only filesystem.

This commit fixes this by writing the parser.rs file to the cargo output
directory instead, as recommended by the docs.rs documentation.[1]

Fixes #4436.

[1]: https://docs.rs/about/builds#read-only-directories
2023-01-11 09:58:10 +01:00