diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e646ab5..93232d95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ Enhancements * The code base is cleaner by running it through Clippy. * `ParseError::err_type` and `ParseError::position` are added for convenience. * The source of an `AST` compiled from a script file is set to the file's path. +* `|>` and `<|` are now reserved symbols. Version 1.8.0 diff --git a/src/tokenizer.rs b/src/tokenizer.rs index a13de181..62d120e5 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -2036,6 +2036,10 @@ fn get_next_token_inner( start_pos, )); } + ('<', '|') => { + eat_next(stream, pos); + return Some((Token::Reserved("<|".into()), start_pos)); + } ('<', ..) => return Some((Token::LessThan, start_pos)), ('>', '=') => { @@ -2067,7 +2071,10 @@ fn get_next_token_inner( return Some((Token::NotEqualsTo, start_pos)); } - ('!', '.') => return Some((Token::Reserved("!.".into()), start_pos)), + ('!', '.') => { + eat_next(stream, pos); + return Some((Token::Reserved("!.".into()), start_pos)); + } ('!', ..) => return Some((Token::Bang, start_pos)), ('|', '|') => { @@ -2078,6 +2085,10 @@ fn get_next_token_inner( eat_next(stream, pos); return Some((Token::OrAssign, start_pos)); } + ('|', '>') => { + eat_next(stream, pos); + return Some((Token::Reserved("|>".into()), start_pos)); + } ('|', ..) => return Some((Token::Pipe, start_pos)), ('&', '&') => {