comparison libinterp/parse-tree/parse.h @ 18287: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 97e49b588f5d
children 932aca9a7c57
comparison
equal deleted inserted replaced
18285:bffa6c8255a9 18287:69990d5edcc2
337 make_classdef_enum_block (token *tok_val, 337 make_classdef_enum_block (token *tok_val,
338 tree_classdef_attribute_list *a, 338 tree_classdef_attribute_list *a,
339 tree_classdef_enum_list *elist, 339 tree_classdef_enum_list *elist,
340 token *end_tok, octave_comment_list *lc); 340 token *end_tok, octave_comment_list *lc);
341 341
342 octave_user_function *
343 start_classdef_external_method (tree_identifier *id,
344 tree_parameter_list *pl);
345
346 tree_function_def *
347 finish_classdef_external_method (octave_user_function *fcn,
348 tree_parameter_list *ret_list,
349 octave_comment_list *cl);
350
342 // Make an index expression. 351 // Make an index expression.
343 tree_index_expression * 352 tree_index_expression *
344 make_index_expression (tree_expression *expr, 353 make_index_expression (tree_expression *expr,
345 tree_argument_list *args, char type); 354 tree_argument_list *args, char type);
346 355