Skip to content

Commit 0b1673a

Browse files
committed
fix parsing of && and ||
1 parent d43d1c0 commit 0b1673a

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

plugins/src/modules/parser.h

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,6 @@ class expression_parser
407407
}
408408
case '(':
409409
{
410-
auto old = begin;
411410
++begin;
412411
auto inner = parse_outer_expression(amx, begin, end, ')');
413412
++begin;
@@ -1116,7 +1115,13 @@ class expression_parser
11161115
{
11171116
break;
11181117
}
1118+
auto old = begin;
11191119
++begin;
1120+
if(begin != end && *begin == '&')
1121+
{
1122+
begin = old;
1123+
return result;
1124+
}
11201125
auto inner = parse_operand(amx, begin, end, endchar);
11211126
if(!inner)
11221127
{
@@ -1131,7 +1136,13 @@ class expression_parser
11311136
{
11321137
break;
11331138
}
1139+
auto old = begin;
11341140
++begin;
1141+
if(begin != end && *begin == '|')
1142+
{
1143+
begin = old;
1144+
return result;
1145+
}
11351146
auto inner = parse_operand(amx, begin, end, endchar);
11361147
if(!inner)
11371148
{
@@ -1196,7 +1207,6 @@ class expression_parser
11961207
{
11971208
break;
11981209
}
1199-
auto old = begin;
12001210
++begin;
12011211
if(begin == end || *begin != '&')
12021212
{
@@ -1213,7 +1223,6 @@ class expression_parser
12131223
{
12141224
break;
12151225
}
1216-
auto old = begin;
12171226
++begin;
12181227
if(begin == end || *begin != '|')
12191228
{

0 commit comments

Comments
 (0)