Hint at use of and/or when &&/|| is improperly used (#1886)
This commit is contained in:
committed by
Jimmi Holst Christensen
parent
3bec3b9f9b
commit
5bf9ffdc5b
@@ -199,6 +199,7 @@ enum TokenizeState {
|
||||
TokenizeStateSawDash,
|
||||
TokenizeStateSawMinusPercent,
|
||||
TokenizeStateSawAmpersand,
|
||||
TokenizeStateSawAmpersandAmpersand,
|
||||
TokenizeStateSawCaret,
|
||||
TokenizeStateSawBar,
|
||||
TokenizeStateSawBarBar,
|
||||
@@ -891,6 +892,10 @@ void tokenize(Buf *buf, Tokenization *out) {
|
||||
end_token(&t);
|
||||
t.state = TokenizeStateStart;
|
||||
break;
|
||||
case '&':
|
||||
set_token_id(&t, t.cur_tok, TokenIdAmpersandAmpersand);
|
||||
t.state = TokenizeStateSawAmpersandAmpersand;
|
||||
break;
|
||||
default:
|
||||
t.pos -= 1;
|
||||
end_token(&t);
|
||||
@@ -898,6 +903,11 @@ void tokenize(Buf *buf, Tokenization *out) {
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case TokenizeStateSawAmpersandAmpersand:
|
||||
t.pos -= 1;
|
||||
end_token(&t);
|
||||
t.state = TokenizeStateStart;
|
||||
continue;
|
||||
case TokenizeStateSawCaret:
|
||||
switch (c) {
|
||||
case '=':
|
||||
@@ -1468,6 +1478,7 @@ void tokenize(Buf *buf, Tokenization *out) {
|
||||
case TokenizeStateSawPlus:
|
||||
case TokenizeStateSawDash:
|
||||
case TokenizeStateSawAmpersand:
|
||||
case TokenizeStateSawAmpersandAmpersand:
|
||||
case TokenizeStateSawCaret:
|
||||
case TokenizeStateSawBar:
|
||||
case TokenizeStateSawEq:
|
||||
@@ -1515,6 +1526,7 @@ void tokenize(Buf *buf, Tokenization *out) {
|
||||
const char * token_name(TokenId id) {
|
||||
switch (id) {
|
||||
case TokenIdAmpersand: return "&";
|
||||
case TokenIdAmpersandAmpersand: return "&&";
|
||||
case TokenIdArrow: return "->";
|
||||
case TokenIdAtSign: return "@";
|
||||
case TokenIdBang: return "!";
|
||||
|
||||
Reference in New Issue
Block a user