Better error messages for unrecognized tokens.
This commit is contained in:
parent
0c6a939c66
commit
f26c12b8ea
38
src/token.rs
38
src/token.rs
@ -862,6 +862,14 @@ impl<'a> TokenIterator<'a> {
|
|||||||
self.eat_next();
|
self.eat_next();
|
||||||
return Some((Token::MinusAssign, pos));
|
return Some((Token::MinusAssign, pos));
|
||||||
}
|
}
|
||||||
|
('-', '>') => {
|
||||||
|
return Some((
|
||||||
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
|
"'->' is not a valid symbol. This is not C or C++!".to_string(),
|
||||||
|
))),
|
||||||
|
pos,
|
||||||
|
))
|
||||||
|
}
|
||||||
('-', _) if self.can_be_unary => return Some((Token::UnaryMinus, pos)),
|
('-', _) if self.can_be_unary => return Some((Token::UnaryMinus, pos)),
|
||||||
('-', _) => return Some((Token::Minus, pos)),
|
('-', _) => return Some((Token::Minus, pos)),
|
||||||
|
|
||||||
@ -931,7 +939,7 @@ impl<'a> TokenIterator<'a> {
|
|||||||
// Warn against `===`
|
// Warn against `===`
|
||||||
if self.peek_next() == Some('=') {
|
if self.peek_next() == Some('=') {
|
||||||
return Some((
|
return Some((
|
||||||
Token::LexError(Box::new(LERR::ImproperKeyword(
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
"'===' is not a valid operator. This is not JavaScript! Should it be '=='?"
|
"'===' is not a valid operator. This is not JavaScript! Should it be '=='?"
|
||||||
.to_string(),
|
.to_string(),
|
||||||
))),
|
))),
|
||||||
@ -941,18 +949,44 @@ impl<'a> TokenIterator<'a> {
|
|||||||
|
|
||||||
return Some((Token::EqualsTo, pos));
|
return Some((Token::EqualsTo, pos));
|
||||||
}
|
}
|
||||||
|
('=', '>') => {
|
||||||
|
return Some((
|
||||||
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
|
"'=>' is not a valid symbol. This is not Rust! Should it be '>='?"
|
||||||
|
.to_string(),
|
||||||
|
))),
|
||||||
|
pos,
|
||||||
|
))
|
||||||
|
}
|
||||||
('=', _) => return Some((Token::Equals, pos)),
|
('=', _) => return Some((Token::Equals, pos)),
|
||||||
|
|
||||||
(':', ':') => {
|
(':', ':') => {
|
||||||
self.eat_next();
|
self.eat_next();
|
||||||
return Some((Token::DoubleColon, pos));
|
return Some((Token::DoubleColon, pos));
|
||||||
}
|
}
|
||||||
|
(':', '=') => {
|
||||||
|
return Some((
|
||||||
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
|
"':=' is not a valid assignment operator. This is not Pascal! Should it be simply '='?"
|
||||||
|
.to_string(),
|
||||||
|
))),
|
||||||
|
pos,
|
||||||
|
))
|
||||||
|
}
|
||||||
(':', _) => return Some((Token::Colon, pos)),
|
(':', _) => return Some((Token::Colon, pos)),
|
||||||
|
|
||||||
('<', '=') => {
|
('<', '=') => {
|
||||||
self.eat_next();
|
self.eat_next();
|
||||||
return Some((Token::LessThanEqualsTo, pos));
|
return Some((Token::LessThanEqualsTo, pos));
|
||||||
}
|
}
|
||||||
|
('<', '-') => {
|
||||||
|
return Some((
|
||||||
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
|
"'<-' is not a valid symbol. Should it be '<='?".to_string(),
|
||||||
|
))),
|
||||||
|
pos,
|
||||||
|
))
|
||||||
|
}
|
||||||
('<', '<') => {
|
('<', '<') => {
|
||||||
self.eat_next();
|
self.eat_next();
|
||||||
|
|
||||||
@ -993,7 +1027,7 @@ impl<'a> TokenIterator<'a> {
|
|||||||
// Warn against `!==`
|
// Warn against `!==`
|
||||||
if self.peek_next() == Some('=') {
|
if self.peek_next() == Some('=') {
|
||||||
return Some((
|
return Some((
|
||||||
Token::LexError(Box::new(LERR::ImproperKeyword(
|
Token::LexError(Box::new(LERR::ImproperSymbol(
|
||||||
"'!==' is not a valid operator. This is not JavaScript! Should it be '!='?"
|
"'!==' is not a valid operator. This is not JavaScript! Should it be '!='?"
|
||||||
.to_string(),
|
.to_string(),
|
||||||
))),
|
))),
|
||||||
|
Loading…
Reference in New Issue
Block a user