diff libinterp/octave-value/ov-classdef.cc @ 18262:69990d5edcc2

Allow to parse external methods declaration in classdef files. * libinterp/parse-tree/parser.h (octave_base_parser::start_classdef_external_method, octave_base_parser::finish_classdef_external_method): New methods. * libinterp/parse-tree/oct-parse.in.yy (octave_base_parser::start_classdef_external_method, octave_base_parser::finish_classdef_external_method): Likewise. (%destructor): Add missing directives for classdef-related types. (method, method_decl, method_decl1): New nonterminal rules. (methods_list): Use "method" on terminal. * libinterp/octave-value/ov-classdef.cc (cdef_package::cdef_package_rep::meta_subsref): When searching for package methods, only issue an error when error_state is not set.
author Michael Goffioul <michael.goffioul@gmail.com>
date Sun, 12 Jan 2014 15:54:43 -0500
parents c4f5c781c3ca
children b5be1a2aa5ab
line wrap: on
line diff
--- a/libinterp/octave-value/ov-classdef.cc	Sat Jan 11 22:50:11 2014 -0800
+++ b/libinterp/octave-value/ov-classdef.cc	Sun Jan 12 15:54:43 2014 -0500
@@ -3176,7 +3176,7 @@
                   else
                     retval(0) = o;
                 }
-              else
+              else if (! error_state)
                 error ("member `%s' in package `%s' does not exist",
                        nm.c_str (), get_name ().c_str ());
             }