diff --git a/extra/lempar.c
b/extra/lempar.c
index d043e39..595f89e 100644
--- a/extra/lempar.c
+++ b/extra/lempar.c
@@ -935,7 +935,8 @@ void Parse(
yymajor = YYNOCODE;
#endif
}
- }while( yymajor!=YYNOCODE
&& yypParser->yytos>yypParser->yystack );
+ }while( yymajor!=YYNOCODE
&& yypParser->yytos>yypParser->yystack
+ PARSER_ERROR_CHECK);
#ifndef NDEBUG
if( yyTraceFILE ){
yyStackEntry *i;
diff --git a/src/box/sql/parse.y
b/src/box/sql/parse.y
index 3a443a0..f241b8d 100644
--- a/src/box/sql/parse.y
+++ b/src/box/sql/parse.y
@@ -80,6 +80,13 @@
#define YYMALLOCARGTYPE u64
/*
+ * Stop the parser if an error
occurs. This macro adds an
+ * additional check that allows the
parser to be stopped if any
+ * error was noticed.
+ */
+#define PARSER_ERROR_CHECK
&& ! pParse->is_aborted
Any arguments in favour of using macro in this case?
Why don’t simply inline this condition?
The rest is OK as obvious.