Skip to content

Commit a8d4de2

Browse files
committed
make_tokenizer -> lex to integrate terms
we don't distinguish scanner or tokenizer from lexer
1 parent b5829b5 commit a8d4de2

File tree

4 files changed

+27
-27
lines changed

4 files changed

+27
-27
lines changed

parser/src/lexer.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@
44
//! governing what is and is not a valid token are defined in the Python reference
55
//! guide section on [Lexical analysis].
66
//!
7-
//! The primary function in this module is [`make_tokenizer`], which takes a string slice
7+
//! The primary function in this module is [`lex`], which takes a string slice
88
//! and returns an iterator over the tokens in the source code. The tokens are currently returned
99
//! as a `Result<Spanned, LexicalError>`, where [`Spanned`] is a tuple containing the
1010
//! start and end [`Location`] and a [`Tok`] denoting the token.
1111
//!
1212
//! # Example
1313
//!
1414
//! ```
15-
//! use rustpython_parser::lexer::{make_tokenizer, Tok};
15+
//! use rustpython_parser::lexer::{lex, Tok};
1616
//! use rustpython_parser::mode::Mode;
1717
//! use rustpython_parser::token::StringKind;
1818
//!
1919
//! let source = "x = 'RustPython'";
20-
//! let tokens = make_tokenizer(source, Mode::Module)
20+
//! let tokens = lex(source, Mode::Module)
2121
//! .map(|tok| tok.expect("Failed to lex"))
2222
//! .collect::<Vec<_>>();
2323
//!
@@ -195,29 +195,29 @@ pub type Spanned = (Location, Tok, Location);
195195
/// The result of lexing a token.
196196
pub type LexResult = Result<Spanned, LexicalError>;
197197

198-
/// Create a new tokenizer from a source string.
198+
/// Create a new lexer from a source string.
199199
///
200200
/// # Examples
201201
///
202202
/// ```
203203
/// use rustpython_parser::mode::Mode;
204-
/// use rustpython_parser::lexer::{make_tokenizer};
204+
/// use rustpython_parser::lexer::{lex};
205205
///
206206
/// let source = "def hello(): return 'world'";
207-
/// let tokenizer = make_tokenizer(source, Mode::Module);
207+
/// let lexer = lex(source, Mode::Module);
208208
///
209-
/// for token in tokenizer {
209+
/// for token in lexer {
210210
/// println!("{:?}", token);
211211
/// }
212212
/// ```
213213
#[inline]
214-
pub fn make_tokenizer(source: &str, mode: Mode) -> impl Iterator<Item = LexResult> + '_ {
215-
make_tokenizer_located(source, mode, Location::default())
214+
pub fn lex(source: &str, mode: Mode) -> impl Iterator<Item = LexResult> + '_ {
215+
lex_located(source, mode, Location::default())
216216
}
217217

218-
/// Create a new tokenizer from a source string, starting at a given location.
219-
/// You probably want to use [`make_tokenizer`] instead.
220-
pub fn make_tokenizer_located(
218+
/// Create a new lexer from a source string, starting at a given location.
219+
/// You probably want to use [`lex`] instead.
220+
pub fn lex_located(
221221
source: &str,
222222
mode: Mode,
223223
start_location: Location,
@@ -230,7 +230,7 @@ where
230230
T: Iterator<Item = char>,
231231
{
232232
/// Create a new lexer from T and a starting location. You probably want to use
233-
/// [`make_tokenizer`] instead.
233+
/// [`lex`] instead.
234234
pub fn new(input: T, start: Location) -> Self {
235235
let mut lxr = Lexer {
236236
at_begin_of_line: true,
@@ -1320,7 +1320,7 @@ impl std::fmt::Display for LexicalErrorType {
13201320

13211321
#[cfg(test)]
13221322
mod tests {
1323-
use super::{make_tokenizer, StringKind, Tok};
1323+
use super::{lex, StringKind, Tok};
13241324
use crate::mode::Mode;
13251325
use num_bigint::BigInt;
13261326

@@ -1329,7 +1329,7 @@ mod tests {
13291329
const UNIX_EOL: &str = "\n";
13301330

13311331
pub fn lex_source(source: &str) -> Vec<Tok> {
1332-
let lexer = make_tokenizer(source, Mode::Module);
1332+
let lexer = lex(source, Mode::Module);
13331333
lexer.map(|x| x.unwrap().1).collect()
13341334
}
13351335

parser/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,28 +67,28 @@
6767
//!
6868
//! ```
6969
//! use rustpython_parser::mode::Mode;
70-
//! use rustpython_parser::lexer::make_tokenizer;
70+
//! use rustpython_parser::lexer::lex;
7171
//!
7272
//! let python_source = r#"
7373
//! def is_odd(i):
7474
//! return bool(i & 1)
7575
//! "#;
76-
//! let mut tokens = make_tokenizer(python_source, Mode::Module);
76+
//! let mut tokens = lex(python_source, Mode::Module);
7777
//! assert!(tokens.all(|t| t.is_ok()));
7878
//! ```
7979
//!
8080
//! These tokens can be directly fed into the parser to generate an AST:
8181
//!
8282
//! ```
83-
//! use rustpython_parser::lexer::make_tokenizer;
83+
//! use rustpython_parser::lexer::lex;
8484
//! use rustpython_parser::mode::Mode;
8585
//! use rustpython_parser::parser::parse_tokens;
8686
//!
8787
//! let python_source = r#"
8888
//! def is_odd(i):
8989
//! return bool(i & 1)
9090
//! "#;
91-
//! let tokens = make_tokenizer(python_source, Mode::Module);
91+
//! let tokens = lex(python_source, Mode::Module);
9292
//! let ast = parse_tokens(tokens, Mode::Module, "<embedded>");
9393
//!
9494
//! assert!(ast.is_ok());

parser/src/parser.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ pub fn parse_located(
164164
source_path: &str,
165165
location: Location,
166166
) -> Result<ast::Mod, ParseError> {
167-
let lxr = lexer::make_tokenizer_located(source, mode, location);
167+
let lxr = lexer::lex_located(source, mode, location);
168168
parse_tokens(lxr, mode, source_path)
169169
}
170170

@@ -175,14 +175,14 @@ pub fn parse_located(
175175
/// # Example
176176
///
177177
/// As an example, instead of parsing a string, we can parse a list of tokens after we generate
178-
/// them using the [`lexer::make_tokenizer`] function:
178+
/// them using the [`lexer::lex`] function:
179179
///
180180
/// ```
181-
/// use rustpython_parser::lexer::make_tokenizer;
181+
/// use rustpython_parser::lexer::lex;
182182
/// use rustpython_parser::mode::Mode;
183183
/// use rustpython_parser::parser::parse_tokens;
184184
///
185-
/// let expr = parse_tokens(make_tokenizer("1 + 2", Mode::Expression), Mode::Expression, "<embedded>");
185+
/// let expr = parse_tokens(lex("1 + 2", Mode::Expression), Mode::Expression, "<embedded>");
186186
/// assert!(expr.is_ok());
187187
/// ```
188188
pub fn parse_tokens(
@@ -191,11 +191,11 @@ pub fn parse_tokens(
191191
source_path: &str,
192192
) -> Result<ast::Mod, ParseError> {
193193
let marker_token = (Default::default(), mode.to_marker(), Default::default());
194-
let tokenizer = iter::once(Ok(marker_token))
194+
let lexer = iter::once(Ok(marker_token))
195195
.chain(lxr)
196196
.filter_ok(|(_, tok, _)| !matches!(tok, Tok::Comment { .. } | Tok::NonLogicalNewline));
197197
python::TopParser::new()
198-
.parse(tokenizer.into_iter())
198+
.parse(lexer.into_iter())
199199
.map_err(|e| parse_error_from_lalrpop(e, source_path))
200200
}
201201

parser/src/soft_keywords.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ impl<I> SoftKeywordTransformer<I>
2727
where
2828
I: Iterator<Item = LexResult>,
2929
{
30-
pub fn new(tokenizer: I, mode: Mode) -> Self {
30+
pub fn new(lexer: I, mode: Mode) -> Self {
3131
Self {
32-
underlying: tokenizer.multipeek(),
32+
underlying: lexer.multipeek(),
3333
start_of_line: matches!(mode, Mode::Interactive | Mode::Module),
3434
}
3535
}

0 commit comments

Comments
 (0)