3 AT_SETUP([GET DATA syntax errors])
4 AT_DATA([get-data.sps], [dnl
10 GET DATA /TYPE=TXT/ **.
11 GET DATA /TYPE=TXT/FILE **.
12 GET DATA /TYPE=TXT/FILE='x.txt' **.
13 GET DATA /TYPE=TXT/FILE='x.txt' /ENCODING=**.
14 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=**.
15 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /ARRANGEMENT=DELIMITED.
16 GET DATA /TYPE=TXT/FILE='x.txt' /FIRSTCASE=**.
17 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELCASE=LINE.
18 GET DATA /TYPE=TXT/FILE='x.txt' /DELCASE=VARIABLES **.
19 GET DATA /TYPE=TXT/FILE='x.txt' /DELCASE=**.
20 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=DELIMITED /FIXCASE=1.
21 GET DATA /TYPE=TXT/FILE='x.txt' /FIXCASE=**.
22 GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=FIRST **.
23 GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=PERCENT **.
24 GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=ALL.
25 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELIMITERS=' '.
26 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /QUALIFIER='"'.
27 GET DATA /TYPE=TXT/FILE='x.txt' /QUALIFIER='"' + "'".
28 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES / **.
29 GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES **.
30 GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES a_very_long_name_that_exceeds_the_64_byte_limit_for_variable_names.
31 GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES x **.
32 GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES x F1.2.
33 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x **.
34 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 **.
35 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 FOO.
36 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 DATE.
37 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 DOLLAR1.2.
38 GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 F x 6-10 F.
40 GET DATA /TYPE=PSQL **.
41 GET DATA /TYPE=PSQL/ **.
42 GET DATA /TYPE=PSQL/CONNECT **.
43 GET DATA /TYPE=PSQL/CONNECT='db'/ASSUMEDSTRWIDTH=**.
44 GET DATA /TYPE=PSQL/CONNECT='db'/BSIZE=**.
45 GET DATA /TYPE=PSQL/CONNECT='db'/SQL=**.
47 GET DATA /TYPE=GNM **.
48 GET DATA /TYPE=GNM/ **.
49 GET DATA /TYPE=GNM/FILE **.
50 GET DATA /TYPE=GNM/FILE= **.
51 GET DATA /TYPE=GNM/FILE='x.gnumeric'/ASSUMEDSTRWIDTH=**.
52 GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=NAME **.
53 GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=INDEX **.
54 GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=**.
55 GET DATA /TYPE=GNM/FILE='x.gnumeric'/CELLRANGE=RANGE **.
56 GET DATA /TYPE=GNM/FILE='x.gnumeric'/CELLRANGE=**.
57 GET DATA /TYPE=GNM/FILE='x.gnumeric'/READNAMES=**.
58 GET DATA /TYPE=GNM/FILE='x.gnumeric'/ **.
60 AT_DATA([insert.sps], [dnl
61 INSERT FILE='get-data.sps' ERROR=IGNORE.
63 AT_CHECK([pspp -x compatible --testing-mode -O format=csv insert.sps], [1], [dnl
64 "get-data.sps:1.10-1.11: error: GET DATA: Syntax error expecting `/TYPE='.
68 "get-data.sps:2.10-2.13: error: GET DATA: Syntax error expecting `/TYPE='.
72 "get-data.sps:3.10-3.17: error: GET DATA: Syntax error expecting `/TYPE='.
73 3 | GET DATA /TYPE **.
76 "get-data.sps:5.20-5.21: error: GET DATA: Syntax error expecting `/FILE='.
77 5 | GET DATA /TYPE=TXT **.
80 "get-data.sps:6.19-6.22: error: GET DATA: Syntax error expecting `/FILE='.
81 6 | GET DATA /TYPE=TXT/ **.
84 "get-data.sps:7.19-7.26: error: GET DATA: Syntax error expecting `/FILE='.
85 7 | GET DATA /TYPE=TXT/FILE **.
88 "get-data.sps:8.33-8.34: error: GET DATA: Syntax error expecting `/'.
89 8 | GET DATA /TYPE=TXT/FILE='x.txt' **.
92 "get-data.sps:9.43-9.44: error: GET DATA: Syntax error expecting string.
93 9 | GET DATA /TYPE=TXT/FILE='x.txt' /ENCODING=**.
96 "get-data.sps:10.46-10.47: error: GET DATA: Syntax error expecting FIXED or DELIMITED.
97 10 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=**.
100 get-data.sps:11: error: GET DATA: FIXED and DELIMITED arrangements are mutually exclusive.
102 "get-data.sps:11.53-11.73: note: GET DATA: This syntax requires DELIMITED arrangement.
103 11 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /ARRANGEMENT=DELIMITED.
104 | ^~~~~~~~~~~~~~~~~~~~~"
106 "get-data.sps:11.34-11.50: note: GET DATA: This syntax requires FIXED arrangement.
107 11 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /ARRANGEMENT=DELIMITED.
110 "get-data.sps:12.44-12.45: error: GET DATA: Syntax error expecting positive integer for FIRSTCASE.
111 12 | GET DATA /TYPE=TXT/FILE='x.txt' /FIRSTCASE=**.
114 get-data.sps:13: error: GET DATA: FIXED and DELIMITED arrangements are mutually exclusive.
116 "get-data.sps:13.53-13.59: note: GET DATA: This syntax requires DELIMITED arrangement.
117 13 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELCASE=LINE.
120 "get-data.sps:13.34-13.50: note: GET DATA: This syntax requires FIXED arrangement.
121 13 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELCASE=LINE.
124 "get-data.sps:14.52-14.53: error: GET DATA: Syntax error expecting integer.
125 14 | GET DATA /TYPE=TXT/FILE='x.txt' /DELCASE=VARIABLES **.
128 "get-data.sps:15.42-15.43: error: GET DATA: Syntax error expecting LINE or VARIABLES.
129 15 | GET DATA /TYPE=TXT/FILE='x.txt' /DELCASE=**.
132 get-data.sps:16: error: GET DATA: FIXED and DELIMITED arrangements are mutually exclusive.
134 "get-data.sps:16.57-16.63: note: GET DATA: This syntax requires FIXED arrangement.
135 16 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=DELIMITED /FIXCASE=1.
138 "get-data.sps:16.34-16.54: note: GET DATA: This syntax requires DELIMITED arrangement.
139 16 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=DELIMITED /FIXCASE=1.
140 | ^~~~~~~~~~~~~~~~~~~~~"
142 "get-data.sps:17.42-17.43: error: GET DATA: Syntax error expecting positive integer for FIXCASE.
143 17 | GET DATA /TYPE=TXT/FILE='x.txt' /FIXCASE=**.
146 "get-data.sps:18.52-18.53: error: GET DATA: Syntax error expecting integer.
147 18 | GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=FIRST **.
150 "get-data.sps:19.54-19.55: error: GET DATA: Syntax error expecting integer.
151 19 | GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=PERCENT **.
154 "get-data.sps:20.34-20.48: warning: GET DATA: Ignoring obsolete IMPORTCASES subcommand. (N OF CASES or SAMPLE may be used to substitute.).
155 20 | GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=ALL.
158 "get-data.sps:20.49: error: GET DATA: Syntax error expecting `/'.
159 20 | GET DATA /TYPE=TXT/FILE='x.txt' /IMPORTCASES=ALL.
162 get-data.sps:21: error: GET DATA: FIXED and DELIMITED arrangements are mutually exclusive.
164 "get-data.sps:21.53-21.62: note: GET DATA: This syntax requires DELIMITED arrangement.
165 21 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELIMITERS=' '.
168 "get-data.sps:21.34-21.50: note: GET DATA: This syntax requires FIXED arrangement.
169 21 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /DELIMITERS=' '.
172 get-data.sps:22: error: GET DATA: FIXED and DELIMITED arrangements are mutually exclusive.
174 "get-data.sps:22.53-22.61: note: GET DATA: This syntax requires DELIMITED arrangement.
175 22 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /QUALIFIER='""'.
178 "get-data.sps:22.34-22.50: note: GET DATA: This syntax requires FIXED arrangement.
179 22 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /QUALIFIER='""'.
182 "get-data.sps:23.44-23.52: error: GET DATA: In compatible syntax mode, the QUALIFIER string must contain exactly one character.
183 23 | GET DATA /TYPE=TXT/FILE='x.txt' /QUALIFIER='""' + ""'"".
186 "get-data.sps:24.65-24.66: error: GET DATA: Syntax error expecting integer.
187 24 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES / **.
190 "get-data.sps:25.44-25.45: error: GET DATA: Syntax error expecting identifier.
191 25 | GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES **.
194 "get-data.sps:26.44-26.109: error: GET DATA: Identifier `a_very_long_name_that_exceeds_the_64_byte_limit_for_variable_names' exceeds 64-byte limit.
195 26 | GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES a_very_long_name_that_exceeds_the_64_byte_limit_for_variable_names.
196 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
198 "get-data.sps:27.46-27.47: error: GET DATA: Syntax error expecting valid format specifier.
199 27 | GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES x **.
202 "get-data.sps:28.46-28.49: error: GET DATA: Input format F1.2 specifies 2 decimal places, but width 1 allows at most 1 decimals.
203 28 | GET DATA /TYPE=TXT/FILE='x.txt' /VARIABLES x F1.2.
206 "get-data.sps:29.65-29.66: error: GET DATA: Syntax error expecting integer.
207 29 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x **.
210 "get-data.sps:30.69-30.70: error: GET DATA: Syntax error expecting valid format specifier.
211 30 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 **.
214 "get-data.sps:31.69-31.71: error: GET DATA: Unknown format type `FOO'.
215 31 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 FOO.
218 "get-data.sps:32.65-32.72: error: GET DATA: Input format DATE5 specifies width 5, but DATE requires a width between 8 and 40.
219 32 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 DATE.
222 "get-data.sps:33.65-33.77: error: GET DATA: Output format DOLLAR1.2 specifies width 1, but DOLLAR requires a width between 2 and 40.
223 33 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 DOLLAR1.2.
226 "get-data.sps:34.71: error: GET DATA: x is a duplicate variable name.
227 34 | GET DATA /TYPE=TXT/FILE='x.txt' /ARRANGEMENT=FIXED /VARIABLES x 1-5 F x 6-10 F.
230 "get-data.sps:36.21-36.22: error: GET DATA: Syntax error expecting `/CONNECT='.
231 36 | GET DATA /TYPE=PSQL **.
234 "get-data.sps:37.20-37.23: error: GET DATA: Syntax error expecting `/CONNECT='.
235 37 | GET DATA /TYPE=PSQL/ **.
238 "get-data.sps:38.20-38.30: error: GET DATA: Syntax error expecting `/CONNECT='.
239 38 | GET DATA /TYPE=PSQL/CONNECT **.
242 "get-data.sps:39.50-39.51: error: GET DATA: Syntax error expecting integer between 1 and 32767 for ASSUMEDSTRWIDTH.
243 39 | GET DATA /TYPE=PSQL/CONNECT='db'/ASSUMEDSTRWIDTH=**.
246 "get-data.sps:40.40-40.41: error: GET DATA: Syntax error expecting positive integer for BSIZE.
247 40 | GET DATA /TYPE=PSQL/CONNECT='db'/BSIZE=**.
250 "get-data.sps:41.38-41.39: error: GET DATA: Syntax error expecting string.
251 41 | GET DATA /TYPE=PSQL/CONNECT='db'/SQL=**.
254 "get-data.sps:43.20-43.21: error: GET DATA: Syntax error expecting `/FILE='.
255 43 | GET DATA /TYPE=GNM **.
258 "get-data.sps:44.19-44.22: error: GET DATA: Syntax error expecting `/FILE='.
259 44 | GET DATA /TYPE=GNM/ **.
262 "get-data.sps:45.19-45.26: error: GET DATA: Syntax error expecting `/FILE='.
263 45 | GET DATA /TYPE=GNM/FILE **.
266 "get-data.sps:46.26-46.27: error: GET DATA: Syntax error expecting string.
267 46 | GET DATA /TYPE=GNM/FILE= **.
270 "get-data.sps:47.54-47.55: error: GET DATA: Syntax error expecting integer between 1 and 32767 for ASSUMEDSTRWIDTH.
271 47 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/ASSUMEDSTRWIDTH=**.
274 "get-data.sps:48.49-48.50: error: GET DATA: Syntax error expecting string.
275 48 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=NAME **.
278 "get-data.sps:49.50-49.51: error: GET DATA: Syntax error expecting positive integer for INDEX.
279 49 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=INDEX **.
282 "get-data.sps:50.44-50.45: error: GET DATA: Syntax error expecting NAME or INDEX.
283 50 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/SHEET=**.
286 "get-data.sps:51.54-51.55: error: GET DATA: Syntax error expecting string.
287 51 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/CELLRANGE=RANGE **.
290 "get-data.sps:52.48-52.49: error: GET DATA: Syntax error expecting FULL or RANGE.
291 52 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/CELLRANGE=**.
294 "get-data.sps:53.48-53.49: error: GET DATA: Syntax error expecting ON or OFF.
295 53 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/READNAMES=**.
298 "get-data.sps:54.39-54.40: error: GET DATA: Syntax error expecting ASSUMEDSTRWIDTH, SHEET, CELLRANGE, or READNAMES.
299 54 | GET DATA /TYPE=GNM/FILE='x.gnumeric'/ **.