Simple lexer for formatter (#4922)

This commit is contained in:
Micha Reiser 2023-06-08 17:37:39 +02:00 committed by GitHub
parent 467df23e65
commit 9c3fb23ace
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 1152 additions and 189 deletions

View file

@ -0,0 +1,218 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokenize_reverse()
---
[
Token {
kind: RParen,
range: 52..53,
},
Token {
kind: Other,
range: 51..52,
},
Token {
kind: Bogus,
range: 50..51,
},
Token {
kind: Bogus,
range: 49..50,
},
Token {
kind: Bogus,
range: 48..49,
},
Token {
kind: Bogus,
range: 47..48,
},
Token {
kind: Bogus,
range: 46..47,
},
Token {
kind: Bogus,
range: 45..46,
},
Token {
kind: Bogus,
range: 44..45,
},
Token {
kind: Bogus,
range: 43..44,
},
Token {
kind: Bogus,
range: 42..43,
},
Token {
kind: Bogus,
range: 41..42,
},
Token {
kind: Bogus,
range: 40..41,
},
Token {
kind: Bogus,
range: 39..40,
},
Token {
kind: Bogus,
range: 38..39,
},
Token {
kind: Bogus,
range: 37..38,
},
Token {
kind: Bogus,
range: 36..37,
},
Token {
kind: Bogus,
range: 35..36,
},
Token {
kind: Bogus,
range: 34..35,
},
Token {
kind: Bogus,
range: 33..34,
},
Token {
kind: Bogus,
range: 32..33,
},
Token {
kind: Bogus,
range: 31..32,
},
Token {
kind: Bogus,
range: 30..31,
},
Token {
kind: Bogus,
range: 29..30,
},
Token {
kind: Bogus,
range: 28..29,
},
Token {
kind: Bogus,
range: 27..28,
},
Token {
kind: Bogus,
range: 26..27,
},
Token {
kind: Bogus,
range: 25..26,
},
Token {
kind: Bogus,
range: 24..25,
},
Token {
kind: Bogus,
range: 23..24,
},
Token {
kind: Bogus,
range: 22..23,
},
Token {
kind: Bogus,
range: 21..22,
},
Token {
kind: Bogus,
range: 20..21,
},
Token {
kind: Bogus,
range: 19..20,
},
Token {
kind: Bogus,
range: 18..19,
},
Token {
kind: Bogus,
range: 17..18,
},
Token {
kind: Bogus,
range: 16..17,
},
Token {
kind: Bogus,
range: 15..16,
},
Token {
kind: Bogus,
range: 14..15,
},
Token {
kind: Bogus,
range: 13..14,
},
Token {
kind: Bogus,
range: 12..13,
},
Token {
kind: Bogus,
range: 11..12,
},
Token {
kind: Bogus,
range: 10..11,
},
Token {
kind: Bogus,
range: 9..10,
},
Token {
kind: Bogus,
range: 8..9,
},
Token {
kind: Bogus,
range: 7..8,
},
Token {
kind: Bogus,
range: 6..7,
},
Token {
kind: Bogus,
range: 5..6,
},
Token {
kind: Bogus,
range: 4..5,
},
Token {
kind: Bogus,
range: 3..4,
},
Token {
kind: Bogus,
range: 2..3,
},
Token {
kind: Bogus,
range: 1..2,
},
Token {
kind: Bogus,
range: 0..1,
},
]

View file

@ -0,0 +1,126 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Comment,
range: 0..17,
},
Token {
kind: Newline,
range: 17..18,
},
Token {
kind: Whitespace,
range: 18..26,
},
Token {
kind: Other,
range: 26..27,
},
Token {
kind: Bogus,
range: 27..28,
},
Token {
kind: Bogus,
range: 28..29,
},
Token {
kind: Bogus,
range: 29..30,
},
Token {
kind: Bogus,
range: 30..31,
},
Token {
kind: Bogus,
range: 31..32,
},
Token {
kind: Bogus,
range: 32..33,
},
Token {
kind: Bogus,
range: 33..34,
},
Token {
kind: Bogus,
range: 34..35,
},
Token {
kind: Bogus,
range: 35..36,
},
Token {
kind: Bogus,
range: 36..37,
},
Token {
kind: Bogus,
range: 37..38,
},
Token {
kind: Bogus,
range: 38..39,
},
Token {
kind: Bogus,
range: 39..40,
},
Token {
kind: Bogus,
range: 40..41,
},
Token {
kind: Bogus,
range: 41..42,
},
Token {
kind: Bogus,
range: 42..43,
},
Token {
kind: Bogus,
range: 43..44,
},
Token {
kind: Bogus,
range: 44..45,
},
Token {
kind: Bogus,
range: 45..46,
},
Token {
kind: Bogus,
range: 46..47,
},
Token {
kind: Bogus,
range: 47..48,
},
Token {
kind: Bogus,
range: 48..49,
},
Token {
kind: Bogus,
range: 49..50,
},
Token {
kind: Bogus,
range: 50..51,
},
Token {
kind: Bogus,
range: 51..52,
},
Token {
kind: Bogus,
range: 52..53,
},
]

View file

@ -0,0 +1,22 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: tokens
---
[
Token {
kind: Comma,
range: 0..1,
},
Token {
kind: Comma,
range: 1..2,
},
Token {
kind: Comma,
range: 2..3,
},
Token {
kind: Comma,
range: 3..4,
},
]

View file

@ -0,0 +1,30 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: tokens
---
[
Token {
kind: LParen,
range: 0..1,
},
Token {
kind: Whitespace,
range: 1..2,
},
Token {
kind: Continuation,
range: 2..3,
},
Token {
kind: Newline,
range: 3..4,
},
Token {
kind: Whitespace,
range: 4..5,
},
Token {
kind: RParen,
range: 5..6,
},
]

View file

@ -0,0 +1,30 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: tokens
---
[
Token {
kind: LParen,
range: 0..1,
},
Token {
kind: LBracket,
range: 1..2,
},
Token {
kind: LBrace,
range: 2..3,
},
Token {
kind: RBrace,
range: 3..4,
},
Token {
kind: RBracket,
range: 4..5,
},
Token {
kind: RParen,
range: 5..6,
},
]

View file

@ -0,0 +1,42 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Whitespace,
range: 0..1,
},
Token {
kind: Comment,
range: 1..30,
},
Token {
kind: Newline,
range: 30..31,
},
Token {
kind: Whitespace,
range: 31..39,
},
Token {
kind: Comment,
range: 39..77,
},
Token {
kind: Newline,
range: 77..78,
},
Token {
kind: Whitespace,
range: 78..86,
},
Token {
kind: Comma,
range: 86..87,
},
Token {
kind: Slash,
range: 87..88,
},
]

View file

@ -0,0 +1,18 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: tokens
---
[
Token {
kind: RParen,
range: 14..15,
},
Token {
kind: Whitespace,
range: 15..16,
},
Token {
kind: Comment,
range: 16..25,
},
]

View file

@ -0,0 +1,22 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: tokens
---
[
Token {
kind: Comment,
range: 0..9,
},
Token {
kind: Newline,
range: 9..10,
},
Token {
kind: Whitespace,
range: 10..14,
},
Token {
kind: Comment,
range: 14..23,
},
]