Update LINE_BREAK_OPERATORS characters
@@ -77,7 +77,7 @@ const char SIGIL_CHARS[] = {
};
const char LINE_BREAK_OPERATORS[] = {
- '#', '.', ':', '|', '!', '=', '<', '>', '+', '-', '*', '/', '\\', ',', 'w', 'a', 'o', 'i', 'n', '&'
+ '#', '.', ':', '|', '!', '=', '<', '>', '+', '-', '*', '/', '\\', ',', 'w', 'a', 'o', 'i', 'n', '&', '^', '~'
};
const char SYMBOL_OPERATORS[] = {
@@ -901,8 +901,10 @@ struct Scanner {
return true;
}
return false;
- // ~>
+ // ~>, ~>>
case '~':
+ advance(lexer);
+ if (lexer->lookahead == '>') {
advance(lexer);
if (lexer->lookahead == '>') {
advance(lexer);
@@ -910,6 +912,10 @@ struct Scanner {
return !is_keyword_end(lexer, valid_symbols);
}
return true;
+ } else if (lexer->lookahead == ':') {
+ return !is_keyword_end(lexer, valid_symbols);
+ }
+ return true;
}
return false;
// |, ||, |||
