Check the return value of various calls to lex_force_match.
[pspp] / src / language / stats / roc.c
index b8086dd6599b4e3d679034db53ef905b75df89d5..8cae062057c5a43309e3bddcab6309e491efcb77 100644 (file)
@@ -160,8 +160,10 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
              if (lex_match (lexer, T_LPAREN))
                {
                  roc.reference = true;
-                 lex_force_match_id (lexer, "REFERENCE");
-                 lex_force_match (lexer, T_RPAREN);
+                 if (! lex_force_match_id (lexer, "REFERENCE"))
+                   goto error;
+                 if (! lex_force_match (lexer, T_RPAREN))
+                   goto error;
                }
            }
          else if (lex_match_id (lexer, "NONE"))
@@ -201,7 +203,8 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
            {
              if (lex_match_id (lexer, "CUTOFF"))
                {
-                 lex_force_match (lexer, T_LPAREN);
+                 if (! lex_force_match (lexer, T_LPAREN))
+                   goto error;
                  if (lex_match_id (lexer, "INCLUDE"))
                    {
                      roc.exclude = MV_SYSTEM;
@@ -215,11 +218,13 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
                      lex_error (lexer, NULL);
                      goto error;
                    }
-                 lex_force_match (lexer, T_RPAREN);
+                 if (! lex_force_match (lexer, T_RPAREN))
+                   goto error;
                }
              else if (lex_match_id (lexer, "TESTPOS"))
                {
-                 lex_force_match (lexer, T_LPAREN);
+                 if (! lex_force_match (lexer, T_LPAREN))
+                   goto error;
                  if (lex_match_id (lexer, "LARGE"))
                    {
                      roc.invert = false;
@@ -233,7 +238,8 @@ cmd_roc (struct lexer *lexer, struct dataset *ds)
                      lex_error (lexer, NULL);
                      goto error;
                    }
-                 lex_force_match (lexer, T_RPAREN);
+                 if (! lex_force_match (lexer, T_RPAREN))
+                   goto error;
                }
              else if (lex_match_id (lexer, "CI"))
                {