Mercurial > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
18260:bffa6c8255a9 | 18262:69990d5edcc2 |
---|---|
3174 else if (type.size () > 1 && idx.size () > 1) | 3174 else if (type.size () > 1 && idx.size () > 1) |
3175 retval = o.next_subsref (nargout, type, idx, 1); | 3175 retval = o.next_subsref (nargout, type, idx, 1); |
3176 else | 3176 else |
3177 retval(0) = o; | 3177 retval(0) = o; |
3178 } | 3178 } |
3179 else | 3179 else if (! error_state) |
3180 error ("member `%s' in package `%s' does not exist", | 3180 error ("member `%s' in package `%s' does not exist", |
3181 nm.c_str (), get_name ().c_str ()); | 3181 nm.c_str (), get_name ().c_str ()); |
3182 } | 3182 } |
3183 else | 3183 else |
3184 error ("invalid meta.package indexing, expected a symbol name"); | 3184 error ("invalid meta.package indexing, expected a symbol name"); |