Mercurial > hg > octave-nkf
view scripts/mkdoc @ 17249:923ce8b42db2
improve try-catch-statement to save exception to a variable (bug #33217)
* oct-parse.in.yy (except_command): Handle exception identifiers.
* oct-parse.in.yy, parse.h (octave_base_parser::make_try_command):
New arg, ID.
* pt-except.cc, pt-except.h (tree_try_catch_command::expr_id): New
data member.
(tree_command::tree_command): Initialize it.
(tree_command::~tree_command): Delete it.
(tree_command::identifier): New function.
* pt-check.cc (tree_checker::visit_try_catch_command): Check for valid
expr_id.
* pt-pr-code.cc (tree_print_code::visit_try_catch_command):
Print expr_id.
* pt-eval.cc (tree_evaluator::visit_try_catch_command): Assign message
and identifier to variable.
* try.tst: New test.
* NEWS: Note change.
author | Stefan Mahr <dac922@gmx.de> |
---|---|
date | Tue, 13 Aug 2013 19:35:53 +0200 |
parents | 72c96de7a403 |
children | d63878346099 |
line wrap: on
line source
#! /bin/sh # # Copyright (C) 1999-2012 John W. Eaton # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. ## Expecting arguments in this order: ## ## SRCDIR SRCDIR-FILES ... -- LOCAL-FILES ... set -e PERL=${PERL:-'perl'} prefix="$1/" shift if test -f gethelp; then cat << EOF ### DO NOT EDIT! ### ### This file is generated automatically from the Octave sources. ### Edit those files instead and run make to update this file. EOF for arg do if [ "$arg" = "--" ]; then prefix="./" else $PERL -w -e ' unless (@ARGV == 2) { die "Usage: $0 srcdir m_filename" ; } ($srcdir, $m_fname) = ($ARGV[0], $ARGV[1]); $full_fname = $srcdir . $m_fname; exit unless ( $full_fname =~ m{(.*)/(@|)([^/]*)/(.*)\.m} ); if ($2) { $fcn = "$2$3/$4"; } else { $fcn = $4; } $re_srcdir = quotemeta($srcdir); for (qx{ ./gethelp $fcn "$full_fname" < "$full_fname"} ) { s/^\s+\@/\@/ unless $in_example; s/^\s+\@group/\@group/; s/^\s+\@end\s+group/\@end group/; s|\@c $fcn $re_srcdir|\@c $fcn scripts/|o; $in_example = (/\s*\@example\b/ .. /\s*\@end\s+example\b/); print; }' "$prefix" "$arg" fi done else echo "gethelp program seems to be missing!" 1>&2 exit 1 fi