Charlie Marsh ed3b4eb72b Add TextRange to Identifier (#8)
## Summary

This PR adds `TextRange` to `Identifier`. Right now, the AST only
includes ranges for identifiers in certain cases (`Expr::Name`,
`Keyword`, etc.), namely when the identifier comprises an entire AST
node. In Ruff, we do additional ad-hoc lexing to extract identifiers
from source code.

One frequent example: given a function `def f(): ...`, we lex to find
the range of `f`, for use in diagnostics.

Another: `except ValueError as e`, for which the AST doesn't include a
range for `e`.

Note that, as an optimization, we avoid storing the `TextRange` for
`Expr::Name`, since it's already included.
2023-06-20 11:19:27 -04:00
2023-06-20 11:19:27 -04:00
2023-05-16 23:29:49 +09:00
2023-06-20 11:19:27 -04:00
2023-05-10 17:57:15 +09:00
2023-05-07 17:20:52 +09:00
2023-05-05 23:49:50 +09:00
2023-05-05 23:49:50 +09:00
2023-06-11 21:56:59 +09:00

RustPython parser as a library

This project is forked from RustPython project. The parser is one of the core part of RustPython and Ruff project.

We try to keep these crates as a well-packaged library for more potential users.

Projects

  • RustPython is a Python interpreter
  • Ruff is an extremely fast Python linter
  • Pylyzer is a static code analyzer / language server for Python
  • Baembal is a Python package to accelerate ast.parse
Description
An extremely fast Python linter and code formatter, written in Rust.
Readme MIT 219 MiB
Languages
Rust 96.1%
Python 2.6%
TypeScript 0.9%
RenderScript 0.2%
Shell 0.1%