Enable use of newlines and tabs in BQL

next
Sayan Nandan 2 years ago
parent fef8b3f8db
commit d2d340b760
No known key found for this signature in database
GPG Key ID: 8BC07A0A4D41DD52

@ -375,6 +375,13 @@ impl<'a> Lexer<'a> {
byte if byte.is_ascii_alphabetic() => self.scan_ident_or_keyword(),
byte if byte.is_ascii_digit() => self.scan_number(),
b' ' => self.trim_ahead(),
b'\n' | b'\t' => {
// simply ignore
unsafe {
// UNSAFE(@ohsayan): This is totally fine. We just looked at the byte
self.incr_cursor()
}
}
quote_style @ (b'"' | b'\'') => self.scan_quoted_string(quote_style),
byte => self.scan_arbitrary_byte(byte),
}

@ -38,6 +38,7 @@ macro_rules! src {
mod lexer {
//! Lexer tests
use super::*;
#[test]
@ -157,6 +158,24 @@ mod lexer {
);
}
}
#[test]
fn lex_ignore_lf() {
let test_slice = b"create\n";
assert_eq!(
Lexer::lex(test_slice).unwrap(),
vec![Token::Keyword(Keyword::Create)]
)
}
#[test]
fn lex_ignore_tab() {
let test_slice = b"create\t";
assert_eq!(
Lexer::lex(test_slice).unwrap(),
vec![Token::Keyword(Keyword::Create)]
)
}
}
mod ast {

Loading…
Cancel
Save