GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
pt-walk.cc
Go to the documentation of this file.
1////////////////////////////////////////////////////////////////////////
2//
3// Copyright (C) 2017-2025 The Octave Project Developers
4//
5// See the file COPYRIGHT.md in the top-level directory of this
6// distribution or <https://octave.org/copyright/>.
7//
8// This file is part of Octave.
9//
10// Octave is free software: you can redistribute it and/or modify it
11// under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// Octave is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with Octave; see the file COPYING. If not, see
22// <https://www.gnu.org/licenses/>.
23//
24////////////////////////////////////////////////////////////////////////
25
26#if defined (HAVE_CONFIG_H)
27# include "config.h"
28#endif
29
30#include "pt-all.h"
31
33
34void tree_walker::visit_anon_fcn_handle (tree_anon_fcn_handle& afh)
35{
36 tree_parameter_list *parameter_list = afh.parameter_list ();
37
38 if (parameter_list)
39 parameter_list->accept (*this);
40
41 tree_expression *expression = afh.expression ();
42
43 if (expression)
44 expression->accept (*this);
45}
46
47void
49{
50 auto p = lst.begin ();
51
52 while (p != lst.end ())
53 {
54 tree_expression *elt = *p++;
55
56 if (elt)
57 elt->accept (*this);
58 }
59}
60
61void
63{
64 tree_args_block_attribute_list *attribute_list = blk.attribute_list ();
65
66 if (attribute_list)
67 attribute_list->accept (*this);
68
69 tree_args_block_validation_list *validation_list = blk.validation_list ();
70
71 if (validation_list)
72 validation_list->accept (*this);
73}
74
75void
77{
78 tree_identifier *attribute = lst.attribute ();
79
80 if (attribute)
81 attribute->accept (*this);
82}
83
84void
86{
87 for (auto *elt : lst)
88 {
89 if (elt)
90 elt->accept (*this);
91 }
92}
93
94void
96{
97 tree_expression *arg_name = val.identifier_expression ();
98
99 if (arg_name)
100 arg_name->accept (*this);
101
102 tree_arg_size_spec *size_spec = val.size_spec ();
103
104 if (size_spec)
105 size_spec->accept (*this);
106
107 tree_identifier *class_name = val.class_name ();
108
109 if (class_name)
110 class_name->accept (*this);
111
112 tree_arg_validation_fcns *validation_fcns = val.validation_fcns ();
113
114 if (validation_fcns)
115 validation_fcns->accept (*this);
116
117 tree_expression *default_value = val.initializer_expression ();
118
119 if (default_value)
120 default_value->accept (*this);
121}
122
123void
125{
126 tree_argument_list *size_args = spec.size_args ();
127
128 if (size_args)
129 size_args->accept (*this);
130}
131
132void
134{
135 tree_argument_list *fcn_args = spec.fcn_args ();
136
137 if (fcn_args)
138 fcn_args->accept (*this);
139}
140
141void
143{
144 tree_expression *op1 = expr.lhs ();
145
146 if (op1)
147 op1->accept (*this);
148
149 tree_expression *op2 = expr.rhs ();
150
151 if (op2)
152 op2->accept (*this);
153}
154
155void
160
161void
166
167void
169{
170 // Nothing to do.
171}
172
173void
175{
176 tree_expression *op1 = expr.base ();
177
178 if (op1)
179 op1->accept (*this);
180
181 tree_expression *op3 = expr.increment ();
182
183 if (op3)
184 op3->accept (*this);
185
186 tree_expression *op2 = expr.limit ();
187
188 if (op2)
189 op2->accept (*this);
190}
191
192void
197
198void
200{
201 tree_decl_init_list *init_list = cmd.initializer_list ();
202
203 if (init_list)
204 init_list->accept (*this);
205}
206
207void
209{
210 tree_identifier *id = cmd.ident ();
211
212 if (id)
213 id->accept (*this);
214
215 tree_expression *expr = cmd.expression ();
216
217 if (expr)
218 expr->accept (*this);
219}
220
221void
223{
224 // FIXME: tree_decl_elt is not derived from tree, so should it
225 // really have an accept method?
226
227 for (tree_decl_elt *elt : lst)
228 {
229 if (elt)
230 elt->accept (*this);
231 }
232}
233
234void
236{
237 tree_expression *lhs = cmd.left_hand_side ();
238
239 if (lhs)
240 lhs->accept (*this);
241
242 tree_expression *expr = cmd.control_expr ();
243
244 if (expr)
245 expr->accept (*this);
246
247 tree_expression *maxproc = cmd.maxproc_expr ();
248
249 if (maxproc)
250 maxproc->accept (*this);
251
252 tree_statement_list *list = cmd.body ();
253
254 if (list)
255 list->accept (*this);
256}
257
258void
260{
262
263 if (lhs)
264 lhs->accept (*this);
265
266 tree_expression *expr = cmd.control_expr ();
267
268 if (expr)
269 expr->accept (*this);
270
271 tree_statement_list *list = cmd.body ();
272
273 if (list)
274 list->accept (*this);
275}
276
277void
279{
280 tree_statement_list *body = cmd.body ();
281
282 if (body)
283 body->accept (*this);
284}
285
286void
288{
289 tree_statement_list *cmd_list = fcn.body ();
290
291 if (cmd_list)
292 cmd_list->accept (*this);
293}
294
295void
297{
298 tree_statement_list *cmd_list = fcn.body ();
299
300 if (cmd_list)
301 cmd_list->accept (*this);
302}
303
304void
306{
307 octave_value fcn = fdef.function ();
308
310
311 if (f)
312 f->accept (*this);
313}
314
315void
317{
318 // Nothing to do.
319}
320
321void
323{
324 tree_expression *expr = cmd.condition ();
325
326 if (expr)
327 expr->accept (*this);
328
329 tree_statement_list *list = cmd.commands ();
330
331 if (list)
332 list->accept (*this);
333}
334
335void
337{
338 tree_if_command_list *list = cmd.cmd_list ();
339
340 if (list)
341 list->accept (*this);
342}
343
344void
346{
347 auto p = lst.begin ();
348
349 while (p != lst.end ())
350 {
351 tree_if_clause *elt = *p++;
352
353 if (elt)
354 elt->accept (*this);
355 }
356}
357
358void
360{
361 tree_expression *label = cs.case_label ();
362
363 if (label)
364 label->accept (*this);
365
366 tree_statement_list *list = cs.commands ();
367
368 if (list)
369 list->accept (*this);
370}
371
372void
374{
375 auto p = lst.begin ();
376
377 while (p != lst.end ())
378 {
379 tree_switch_case *elt = *p++;
380
381 if (elt)
382 elt->accept (*this);
383 }
384}
385
386void
388{
389 tree_expression *expr = cmd.switch_value ();
390
391 if (expr)
392 expr->accept (*this);
393
394 tree_switch_case_list *list = cmd.case_list ();
395
396 if (list)
397 list->accept (*this);
398}
399
400void
402{
403 tree_expression *e = expr.expression ();
404
405 if (e)
406 e->accept (*this);
407
408 std::list<tree_argument_list *> arg_lists = expr.arg_lists ();
409 std::list<string_vector> arg_names = expr.arg_names ();
410 std::list<tree_expression *> dyn_fields = expr.dyn_fields ();
411
412 auto p_arg_lists = arg_lists.begin ();
413 auto p_arg_names = arg_names.begin ();
414 auto p_dyn_fields = dyn_fields.begin ();
415
416 std::string type_tags = expr.type_tags ();
417 int n = type_tags.length ();
418
419 for (int i = 0; i < n; i++)
420 {
421 switch (type_tags[i])
422 {
423 case '(':
424 case '{':
425 {
426 tree_argument_list *l = *p_arg_lists;
427 if (l)
428 l->accept (*this);
429 }
430 break;
431
432 case '.':
433 {
434 std::string fn = (*p_arg_names)(0);
435 if (fn.empty ())
436 {
437 tree_expression *df = *p_dyn_fields;
438 if (df)
439 df->accept (*this);
440 }
441 }
442 break;
443
444 default:
445 error ("unexpected: index not '(', '{', or '.' in tree_walker::visit_index_expression - please report this bug");
446 }
447
448 p_arg_lists++;
449 p_arg_names++;
450 p_dyn_fields++;
451 }
452}
453
454void
456{
457 auto p = lst.begin ();
458
459 while (p != lst.end ())
460 {
461 tree_argument_list *elt = *p++;
462
463 if (elt)
464 elt->accept (*this);
465 }
466}
467
468void
470{
471 auto p = lst.begin ();
472
473 while (p != lst.end ())
474 {
475 tree_argument_list *elt = *p++;
476
477 if (elt)
478 elt->accept (*this);
479 }
480}
481
482void
484{
485 tree_argument_list *lhs = expr.left_hand_side ();
486
487 if (lhs)
488 lhs->accept (*this);
489
490 tree_expression *rhs = expr.right_hand_side ();
491
492 if (rhs)
493 rhs->accept (*this);
494}
495
496void
498{
499 // Nothing to do.
500}
501
502void
504{
505 // Nothing to do.
506}
507
508void
510{
511 // Nothing to do.
512}
513
514void
516{
517 auto p = lst.begin ();
518
519 while (p != lst.end ())
520 {
521 tree_decl_elt *elt = *p++;
522
523 if (elt)
524 elt->accept (*this);
525 }
526}
527
528void
530{
531 tree_expression *e = expr.operand ();
532
533 if (e)
534 e->accept (*this);
535}
536
537void
539{
540 tree_expression *e = expr.operand ();
541
542 if (e)
543 e->accept (*this);
544}
545
546void
551
552void
554{
555 tree_expression *lhs = expr.left_hand_side ();
556
557 if (lhs)
558 lhs->accept (*this);
559
560 tree_expression *rhs = expr.right_hand_side ();
561
562 if (rhs)
563 rhs->accept (*this);
564}
565
566void
568{
569 tree_command *cmd = stmt.command ();
570
571 if (cmd)
572 cmd->accept (*this);
573 else
574 {
575 tree_expression *expr = stmt.expression ();
576
577 if (expr)
578 expr->accept (*this);
579 }
580}
581
582void
584{
585 for (tree_statement *elt : lst)
586 {
587 if (elt)
588 elt->accept (*this);
589 }
590}
591
592void
594{
595 tree_statement_list *try_code = cmd.body ();
596
597 if (try_code)
598 try_code->accept (*this);
599
600 tree_identifier *expr_id = cmd.identifier ();
601
602 if (expr_id)
603 expr_id->accept (*this);
604
605 tree_statement_list *catch_code = cmd.cleanup ();
606
607 if (catch_code)
608 catch_code->accept (*this);
609}
610
611void
613{
614 tree_statement_list *unwind_protect_code = cmd.body ();
615
616 if (unwind_protect_code)
617 unwind_protect_code->accept (*this);
618
619 tree_statement_list *cleanup_code = cmd.cleanup ();
620
621 if (cleanup_code)
622 cleanup_code->accept (*this);
623}
624
625void
627{
628 tree_expression *expr = cmd.condition ();
629
630 if (expr)
631 expr->accept (*this);
632
633 tree_statement_list *list = cmd.body ();
634
635 if (list)
636 list->accept (*this);
637}
638
639void
641{
642 tree_statement_list *list = cmd.body ();
643
644 if (list)
645 list->accept (*this);
646
647 tree_expression *expr = cmd.condition ();
648
649 if (expr)
650 expr->accept (*this);
651}
652
653void
658
659void
664
665void
667{
668 tree_identifier *id = attr.ident ();
669
670 if (id)
671 id->accept (*this);
672
673 tree_expression *expr = attr.expression ();
674
675 if (expr)
676 expr->accept (*this);
677}
678
679void
681{
682 for (auto *elt : lst)
683 {
684 if (elt)
685 elt->accept (*this);
686 }
687}
688
689void
694
695void
697{
698 for (auto *elt : lst)
699 {
700 if (elt)
701 elt->accept (*this);
702 }
703}
704
705void
707{
708 // FIXME: Should we operate on the tree_arg_validation object or the
709 // identifier and expression parts separately?
710}
711
712void
714{
715 for (auto *elt : lst)
716 {
717 if (elt)
718 elt->accept (*this);
719 }
720}
721
722void
724{
725 tree_classdef_property_list *property_list = blk.property_list ();
726
727 if (property_list)
728 property_list->accept (*this);
729}
730
731void
733{
734 for (auto ov_meth : lst)
735 {
736 octave_user_function *meth = ov_meth.user_function_value ();
737
738 if (meth)
739 meth->accept (*this);
740 }
741}
742
743void
745{
746 tree_classdef_method_list *method_list = blk.method_list ();
747
748 if (method_list)
749 method_list->accept (*this);
750}
751
752void
757
758void
760{
761 for (auto *elt : lst)
762 {
763 if (elt)
764 elt->accept (*this);
765 }
766}
767
768void
770{
771 tree_classdef_event_list *event_list = blk.event_list ();
772
773 if (event_list)
774 event_list->accept (*this);
775}
776
777void
779{
780 // Nothing to do.
781}
782
783void
785{
786 for (auto *elt : lst)
787 {
788 if (elt)
789 elt->accept (*this);
790 }
791}
792
793void
795{
796 tree_classdef_enum_list *enum_list = blk.enum_list ();
797
798 if (enum_list)
799 enum_list->accept (*this);
800}
801
802void
804{
805 for (auto *elt : body.property_list ())
806 {
807 if (elt)
808 elt->accept (*this);
809 }
810
811 for (auto *elt : body.method_list ())
812 {
813 if (elt)
814 elt->accept (*this);
815 }
816
817
818 for (auto *elt : body.event_list ())
819 {
820 if (elt)
821 elt->accept (*this);
822 }
823
824 for (auto *elt : body.enum_list ())
825 {
826 if (elt)
827 elt->accept (*this);
828 }
829}
830
831void
833{
834 tree_classdef_attribute_list *attribute_list = cdef.attribute_list ();
835
836 if (attribute_list)
837 attribute_list->accept (*this);
838
839 tree_identifier *ident = cdef.ident ();
840
841 if (ident)
842 ident->accept (*this);
843
844 tree_classdef_superclass_list *superclass_list = cdef.superclass_list ();
845
846 if (superclass_list)
847 superclass_list->accept (*this);
848
849 tree_classdef_body *body = cdef.body ();
850
851 if (body)
852 body->accept (*this);
853}
854
855OCTAVE_END_NAMESPACE(octave)
virtual void accept(octave::tree_walker &)
Definition ov-fcn.h:225
octave::tree_statement_list * body()
Definition ov-usr-fcn.h:125
octave_user_function * user_function_value(bool=false)
Definition ov-usr-fcn.h:230
void accept(octave::tree_walker &tw)
octave_function * function_value(bool silent=false) const
tree_argument_list * size_args()
void accept(tree_walker &tw)
void accept(tree_walker &tw)
tree_argument_list * fcn_args()
tree_arg_size_spec * size_spec()
tree_expression * initializer_expression()
tree_identifier * class_name()
tree_expression * identifier_expression()
tree_arg_validation_fcns * validation_fcns()
tree_identifier * attribute()
void accept(tree_walker &tw)
void accept(tree_walker &tw)
void accept(tree_walker &tw)
tree_args_block_attribute_list * attribute_list()
tree_args_block_validation_list * validation_list()
tree_expression * lhs()
Definition pt-binop.h:84
tree_expression * rhs()
Definition pt-binop.h:85
void accept(tree_walker &tw)
tree_identifier * ident()
tree_expression * expression()
void accept(tree_walker &tw)
std::list< tree_classdef_properties_block * > property_list()
std::list< tree_classdef_methods_block * > method_list()
std::list< tree_classdef_enum_block * > enum_list()
std::list< tree_classdef_events_block * > event_list()
tree_classdef_enum_list * enum_list()
void accept(tree_walker &tw)
void accept(tree_walker &tw)
tree_classdef_event_list * event_list()
void accept(tree_walker &tw)
tree_classdef_method_list * method_list()
tree_classdef_property_list * property_list()
void accept(tree_walker &tw)
void accept(tree_walker &tw)
tree_classdef_body * body()
tree_identifier * ident()
tree_classdef_superclass_list * superclass_list()
tree_classdef_attribute_list * attribute_list()
tree_expression * limit()
Definition pt-colon.h:79
tree_expression * base()
Definition pt-colon.h:77
tree_expression * increment()
Definition pt-colon.h:81
tree_argument_list * left_hand_side()
Definition pt-loop.h:204
tree_statement_list * body()
Definition pt-loop.h:208
tree_expression * control_expr()
Definition pt-loop.h:206
tree_decl_init_list * initializer_list()
Definition pt-decl.h:208
tree_expression * expression()
Definition pt-decl.h:90
tree_identifier * ident()
Definition pt-decl.h:86
void accept(tree_walker &tw)
Definition pt-decl.h:94
void accept(tree_walker &tw)
Definition pt-decl.h:175
tree_expression * condition()
Definition pt-loop.h:101
tree_statement_list * body()
Definition pt-loop.h:99
octave_value function()
Definition pt-cmd.h:151
void accept(tree_walker &tw)
Definition pt-id.h:108
void accept(tree_walker &tw)
Definition pt-select.h:72
tree_statement_list * commands()
Definition pt-select.h:68
tree_expression * condition()
Definition pt-select.h:66
void accept(tree_walker &tw)
Definition pt-select.h:137
tree_if_command_list * cmd_list()
Definition pt-select.h:162
tree_expression * expression()
Definition pt-idx.h:81
std::string type_tags()
Definition pt-idx.h:85
std::list< tree_expression * > dyn_fields()
Definition pt-idx.h:89
std::list< tree_argument_list * > arg_lists()
Definition pt-idx.h:83
std::list< string_vector > arg_names()
Definition pt-idx.h:87
tree_expression * right_hand_side()
Definition pt-assign.h:143
tree_argument_list * left_hand_side()
Definition pt-assign.h:141
void accept(tree_walker &tw)
Definition pt-misc.h:110
tree_expression * right_hand_side()
Definition pt-assign.h:75
tree_expression * left_hand_side()
Definition pt-assign.h:73
tree_expression * maxproc_expr()
Definition pt-loop.h:148
tree_expression * left_hand_side()
Definition pt-loop.h:144
tree_expression * control_expr()
Definition pt-loop.h:146
tree_statement_list * body()
Definition pt-loop.h:150
tree_statement_list * body()
Definition pt-spmd.h:56
void accept(tree_walker &tw)
Definition pt-stmt.h:213
tree_command * command()
Definition pt-stmt.h:102
tree_expression * expression()
Definition pt-stmt.h:104
void accept(tree_walker &tw)
Definition pt-select.h:264
tree_expression * case_label()
Definition pt-select.h:204
tree_statement_list * commands()
Definition pt-select.h:206
void accept(tree_walker &tw)
Definition pt-select.h:210
tree_switch_case_list * case_list()
Definition pt-select.h:287
tree_expression * switch_value()
Definition pt-select.h:285
tree_identifier * identifier()
Definition pt-except.h:57
tree_statement_list * cleanup()
Definition pt-except.h:61
tree_statement_list * body()
Definition pt-except.h:59
tree_expression * operand()
Definition pt-unop.h:66
tree_statement_list * cleanup()
Definition pt-except.h:105
tree_statement_list * body()
Definition pt-except.h:103
virtual void visit_compound_binary_expression(tree_compound_binary_expression &)
Definition pt-walk.cc:162
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition pt-walk.cc:666
virtual void visit_boolean_expression(tree_boolean_expression &)
Definition pt-walk.cc:156
virtual void visit_unwind_protect_command(tree_unwind_protect_command &)
Definition pt-walk.cc:612
virtual void visit_try_catch_command(tree_try_catch_command &)
Definition pt-walk.cc:593
virtual void visit_if_command_list(tree_if_command_list &)
Definition pt-walk.cc:345
virtual void visit_multi_assignment(tree_multi_assignment &)
Definition pt-walk.cc:483
virtual void visit_return_command(tree_return_command &)
Definition pt-walk.cc:547
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition pt-walk.cc:744
virtual void visit_continue_command(tree_continue_command &)
Definition pt-walk.cc:193
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition pt-walk.cc:794
virtual void visit_classdef(tree_classdef &)
Definition pt-walk.cc:832
virtual void visit_switch_case_list(tree_switch_case_list &)
Definition pt-walk.cc:373
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition pt-walk.cc:690
virtual void visit_classdef_property(tree_classdef_property &)
Definition pt-walk.cc:706
virtual void visit_complex_for_command(tree_complex_for_command &)
Definition pt-walk.cc:259
virtual void visit_break_command(tree_break_command &)
Definition pt-walk.cc:168
virtual void visit_classdef_event_list(tree_classdef_event_list &)
Definition pt-walk.cc:759
virtual void visit_matrix(tree_matrix &)
Definition pt-walk.cc:455
virtual void visit_args_block_validation_list(tree_args_block_validation_list &)
Definition pt-walk.cc:85
virtual void visit_fcn_handle(tree_fcn_handle &)
Definition pt-walk.cc:509
virtual void visit_colon_expression(tree_colon_expression &)
Definition pt-walk.cc:174
virtual void visit_arg_size_spec(tree_arg_size_spec &)
Definition pt-walk.cc:124
virtual void visit_spmd_command(tree_spmd_command &)
Definition pt-walk.cc:278
virtual void visit_do_until_command(tree_do_until_command &)
Definition pt-walk.cc:640
virtual void visit_no_op_command(tree_no_op_command &)
Definition pt-walk.cc:497
virtual void visit_binary_expression(tree_binary_expression &)
Definition pt-walk.cc:142
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition pt-walk.cc:769
virtual void visit_simple_for_command(tree_simple_for_command &)
Definition pt-walk.cc:235
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition pt-walk.cc:713
virtual void visit_postfix_expression(tree_postfix_expression &)
Definition pt-walk.cc:529
virtual void visit_prefix_expression(tree_prefix_expression &)
Definition pt-walk.cc:538
virtual void visit_classdef_body(tree_classdef_body &)
Definition pt-walk.cc:803
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition pt-walk.cc:778
virtual void visit_args_block_attribute_list(tree_args_block_attribute_list &)
Definition pt-walk.cc:76
virtual void visit_parameter_list(tree_parameter_list &)
Definition pt-walk.cc:515
virtual void visit_arguments_block(tree_arguments_block &)
Definition pt-walk.cc:62
virtual void visit_statement(tree_statement &)
Definition pt-walk.cc:567
virtual void visit_index_expression(tree_index_expression &)
Definition pt-walk.cc:401
virtual void visit_decl_command(tree_decl_command &)
Definition pt-walk.cc:199
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition pt-walk.cc:784
virtual void visit_switch_case(tree_switch_case &)
Definition pt-walk.cc:359
virtual void visit_cell(tree_cell &)
Definition pt-walk.cc:469
virtual void visit_identifier(tree_identifier &)
Definition pt-walk.cc:316
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition pt-walk.cc:723
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition pt-walk.cc:696
virtual void visit_decl_init_list(tree_decl_init_list &)
Definition pt-walk.cc:222
virtual void visit_if_clause(tree_if_clause &)
Definition pt-walk.cc:322
virtual void visit_statement_list(tree_statement_list &)
Definition pt-walk.cc:583
virtual void visit_arg_validation_fcns(tree_arg_validation_fcns &)
Definition pt-walk.cc:133
virtual void visit_if_command(tree_if_command &)
Definition pt-walk.cc:336
virtual void visit_argument_list(tree_argument_list &)
Definition pt-walk.cc:48
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition pt-walk.cc:680
virtual void visit_classdef_method_list(tree_classdef_method_list &)
Definition pt-walk.cc:732
virtual void visit_decl_elt(tree_decl_elt &)
Definition pt-walk.cc:208
virtual void visit_classdef_event(tree_classdef_event &)
Definition pt-walk.cc:753
virtual void visit_constant(tree_constant &)
Definition pt-walk.cc:503
virtual void visit_simple_assignment(tree_simple_assignment &)
Definition pt-walk.cc:553
virtual void visit_superclass_ref(tree_superclass_ref &)
Definition pt-walk.cc:654
virtual void visit_octave_user_script(octave_user_script &)
Definition pt-walk.cc:287
virtual void visit_arg_validation(tree_arg_validation &)
Definition pt-walk.cc:95
virtual void visit_octave_user_function(octave_user_function &)
Definition pt-walk.cc:296
virtual void visit_function_def(tree_function_def &)
Definition pt-walk.cc:305
virtual void visit_metaclass_query(tree_metaclass_query &)
Definition pt-walk.cc:660
virtual void visit_while_command(tree_while_command &)
Definition pt-walk.cc:626
virtual void visit_switch_command(tree_switch_command &)
Definition pt-walk.cc:387
tree_statement_list * body()
Definition pt-loop.h:62
tree_expression * condition()
Definition pt-loop.h:60
virtual void accept(tree_walker &tw)=0
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
void error(const char *fmt,...)
Definition error.cc:1003
F77_RET_T const F77_DBLE const F77_DBLE * f