dnl PSPP - a program for statistical analysis. dnl Copyright (C) 2017 Free Software Foundation, Inc. dnl dnl This program is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see . dnl AT_BANNER([DO IF]) AT_SETUP([DO IF]) (for a in 0 1 ' '; do for b in 0 1 ' '; do for c in 0 1 ' '; do for d in 0 1 ' '; do abcd=$a$b$c$d echo "$abcd" 1>&3 if test "$a" = "1"; then echo " $abcd A" elif test "$a" = " "; then : elif test "$b" = "1"; then echo " $abcd B" elif test "$b" = " "; then : elif test "$c" = "1"; then echo " $abcd C" elif test "$c" = " "; then : elif test "$d" = "1"; then echo " $abcd D" elif test "$d" = " "; then : else echo " $abcd E" fi done done done done) >expout 3>do-if.txt || exit 99 AT_DATA([do-if.sps], [dnl DATA LIST FILE="do-if.txt"/A B C D 1-4 ABCD 1-4 (A). DO IF A. PRINT OUTFILE="do-if.out"/ABCD 'A'. ELSE IF B. PRINT OUTFILE="do-if.out"/ABCD 'B'. ELSE IF C. PRINT OUTFILE="do-if.out"/ABCD 'C'. ELSE IF D. PRINT OUTFILE="do-if.out"/ABCD 'D'. ELSE. PRINT OUTFILE="do-if.out"/ABCD 'E'. END IF. EXECUTE. ]) AT_CHECK([pspp do-if.sps], [0], [ignore]) AT_CHECK([cat do-if.out], [0], [expout]) AT_CLEANUP AT_SETUP([unpaired END IF crash]) AT_DATA([do-if.sps], [dnl DATA LIST LIST NOTABLE/a b c. END IF. ]) AT_CHECK([pspp -O format=csv do-if.sps], [1], [dnl do-if.sps:2: error: END IF: This command cannot appear outside DO IF...END IF. ]) AT_CLEANUP AT_SETUP([ELSE without DO IF]) AT_DATA([do-if.sps], [dnl DATA lIST NOTABLE LIST /QUA BRA *. BEGIN DATA 4 1 6 3 END DATA ELSE QUA 'A string'. EXECUTE. ]) AT_CHECK([pspp -O format=csv do-if.sps], [1], [dnl do-if.sps:7: error: ELSE: This command cannot appear outside DO IF...END IF. do-if.sps:9: error: Stopping syntax file processing here to avoid a cascade of dependent command failures. ]) AT_CLEANUP