projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
render: Add comment.
[pspp]
/
src
/
language
/
control
/
do-if.c
diff --git
a/src/language/control/do-if.c
b/src/language/control/do-if.c
index a80dae31c9811936ea24908901c4518d5b9bebba..83de0e39a31a73574bfe0fa0b781dafc96eafbf0 100644
(file)
--- a/
src/language/control/do-if.c
+++ b/
src/language/control/do-if.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2009
, 2011
Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009
-2012
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-19,7
+19,7
@@
#include <stdlib.h>
#include "data/case.h"
#include <stdlib.h>
#include "data/case.h"
-#include "data/
procedure
.h"
+#include "data/
dataset
.h"
#include "data/transformations.h"
#include "data/value.h"
#include "language/command.h"
#include "data/transformations.h"
#include "data/value.h"
#include "language/command.h"
@@
-121,29
+121,32
@@
cmd_else_if (struct lexer *lexer, struct dataset *ds)
/* Parse ELSE. */
int
/* Parse ELSE. */
int
-cmd_else (struct lexer *lexer, struct dataset *ds)
+cmd_else (struct lexer *lexer
UNUSED
, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
- assert (ds == do_if->ds);
+
if (do_if == NULL || !must_not_have_else (do_if))
return CMD_CASCADING_FAILURE;
if (do_if == NULL || !must_not_have_else (do_if))
return CMD_CASCADING_FAILURE;
+
+ assert (ds == do_if->ds);
+
add_else (do_if);
add_else (do_if);
- return
lex_end_of_command (lexer)
;
+ return
CMD_SUCCESS
;
}
/* Parse END IF. */
int
}
/* Parse END IF. */
int
-cmd_end_if (struct lexer *lexer, struct dataset *ds)
+cmd_end_if (struct lexer *lexer
UNUSED
, struct dataset *ds)
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
{
struct do_if_trns *do_if = ctl_stack_top (&do_if_class);
- assert (ds == do_if->ds);
if (do_if == NULL)
return CMD_CASCADING_FAILURE;
if (do_if == NULL)
return CMD_CASCADING_FAILURE;
+ assert (ds == do_if->ds);
ctl_stack_pop (do_if);
ctl_stack_pop (do_if);
- return
lex_end_of_command (lexer)
;
+ return
CMD_SUCCESS
;
}
/* Closes out DO_IF, by adding a sentinel ELSE clause if
}
/* Closes out DO_IF, by adding a sentinel ELSE clause if
@@
-174,7
+177,7
@@
must_not_have_else (struct do_if_trns *do_if)
{
if (has_else (do_if))
{
{
if (has_else (do_if))
{
- msg (SE, _("This command may not follow
ELSE in DO IF...END IF.")
);
+ msg (SE, _("This command may not follow
%s in %s ... %s."), "ELSE", "DO IF", "END IF"
);
return false;
}
else
return false;
}
else
@@
-204,7
+207,7
@@
parse_clause (struct lexer *lexer, struct do_if_trns *do_if, struct dataset *ds)
add_clause (do_if, condition);
add_clause (do_if, condition);
- return
lex_end_of_command (lexer)
;
+ return
CMD_SUCCESS
;
}
/* Adds a clause to DO_IF that tests for the given CONDITION and,
}
/* Adds a clause to DO_IF that tests for the given CONDITION and,