comparison libinterp/parse-tree/pt-mat.cc @ 16924:aebb54d99dba

improve compatibility of parsing of matrices and cell arrays * oct-parse.in.yy (matrix_rows1, cell_rows1): Delete non-terminals. (matrix, matrix_rows, cell, cell_rows): Ignore empty elements. (cell_or_matrix_row): Handle leading and trailing commas. (octave_base_parser::finish_matrix, octave_base_parser::finish_cell): Handle null matrix and cell objects. * pt-mat.cc: New tests.
author John W. Eaton <jwe@octave.org>
date Mon, 08 Jul 2013 12:20:04 -0400
parents 70f465930546
children bc924baa2c4e
comparison
equal deleted inserted replaced
16923:5d08a2ec7edb 16924:aebb54d99dba
1334 %!assert (class (["a", true]), "char") 1334 %!assert (class (["a", true]), "char")
1335 %!assert (class (["a", "a"]), "char") 1335 %!assert (class (["a", "a"]), "char")
1336 1336
1337 %!assert (class ([cell(1), struct("foo", "bar")]), "cell") 1337 %!assert (class ([cell(1), struct("foo", "bar")]), "cell")
1338 %!error [struct("foo", "bar"), cell(1)] 1338 %!error [struct("foo", "bar"), cell(1)]
1339
1340 %!assert ([,1], 1)
1341 %!assert ([1,], 1)
1342 %!assert ([,1,], 1)
1343 %!assert ([,1,;;], 1)
1344 %!assert ([,1,;,;], 1)
1345
1346 %!assert ([1,1], ones (1, 2))
1347 %!assert ([,1,1], ones (1, 2))
1348 %!assert ([1,1,], ones (1, 2))
1349 %!assert ([,1,1,], ones (1, 2))
1350 %!assert ([,1,1,;;], ones (1, 2))
1351 %!assert ([,1,1,;,;], ones (1, 2))
1352 %!assert ([,;,1,1], ones (1, 2))
1353
1354 %!assert ([1;1], ones (2, 1))
1355 %!assert ([1,;1], ones (2, 1))
1356 %!assert ([1,;,;1], ones (2, 1))
1357
1358 %!error eval ("[,,]")
1359 %!error eval ("[,,;,]")
1360 %!error eval ("[,;,,;,]")
1361
1362 %!assert (isnull ([,]))
1363 %!assert (isnull ([;]))
1364 %!assert (isnull ([;;]))
1365 %!assert (isnull ([;,;]))
1366 %!assert (isnull ([,;,;,]))
1339 */ 1367 */
1340 1368
1341 DEFUN (string_fill_char, args, nargout, 1369 DEFUN (string_fill_char, args, nargout,
1342 "-*- texinfo -*-\n\ 1370 "-*- texinfo -*-\n\
1343 @deftypefn {Built-in Function} {@var{val} =} string_fill_char ()\n\ 1371 @deftypefn {Built-in Function} {@var{val} =} string_fill_char ()\n\