Skip to content

Commit ce56b5e

Browse files
committed
modify number_token to produce partial lexing results (#2986)
1 parent 8e01eea commit ce56b5e

File tree

2 files changed

+144
-210
lines changed

2 files changed

+144
-210
lines changed

src/machine/system_calls.rs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -911,27 +911,16 @@ impl MachineState {
911911
use crate::parser::lexer::*;
912912

913913
let nx = self.store(self.deref(self.registers[2]));
914-
let add_dot = !string.ends_with('.') || string.ends_with("'.");
915-
let cursor = std::io::Cursor::new(string);
916-
917-
let iter = std::io::Read::chain(cursor, {
918-
let mut dot_buf: [u8; '.'.len_utf8()] = [0u8];
919-
920-
if add_dot && !string.ends_with('\'') {
921-
'.'.encode_utf8(&mut dot_buf);
922-
}
923-
924-
std::io::Cursor::new(dot_buf)
925-
});
914+
let iter = std::io::Cursor::new(string);
926915

927916
let mut lexer = Lexer::new(CharReader::new(iter), self);
928917
let mut tokens = vec![];
929918

930-
match lexer.next_token() {
919+
match lexer.next_number_token() {
931920
Ok(token @ Token::Literal(Literal::Atom(atom!("-")) | Literal::Char('-'))) => {
932921
tokens.push(token);
933922

934-
if let Ok(token) = lexer.next_token() {
923+
if let Ok(token) = lexer.next_number_token() {
935924
tokens.push(token);
936925
}
937926
}

0 commit comments

Comments
 (0)