GNU Octave 7.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
pt-walk.cc
Go to the documentation of this file.
1////////////////////////////////////////////////////////////////////////
2//
3// Copyright (C) 2017-2022 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
32namespace octave
33{
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
48 {
49 auto p = lst.begin ();
50
51 while (p != lst.end ())
52 {
53 tree_expression *elt = *p++;
54
55 if (elt)
56 elt->accept (*this);
57 }
58 }
59
61 {
62 tree_args_block_attribute_list *attribute_list = blk.attribute_list ();
63
64 if (attribute_list)
65 attribute_list->accept (*this);
66
67 tree_args_block_validation_list *validation_list = blk.validation_list ();
68
69 if (validation_list)
70 validation_list->accept (*this);
71 }
72
74 {
75 tree_identifier *attribute = lst.attribute ();
76
77 if (attribute)
78 attribute->accept (*this);
79 }
80
82 {
83 for (auto *elt : lst)
84 {
85 if (elt)
86 elt->accept (*this);
87 }
88 }
89
91 {
92 tree_expression *arg_name = val.identifier_expression ();
93
94 if (arg_name)
95 arg_name->accept (*this);
96
97 tree_arg_size_spec *size_spec = val.size_spec ();
98
99 if (size_spec)
100 size_spec->accept (*this);
101
102 tree_identifier *class_name = val.class_name ();
103
104 if (class_name)
105 class_name->accept (*this);
106
107 tree_arg_validation_fcns *validation_fcns = val.validation_fcns ();
108
109 if (validation_fcns)
110 validation_fcns->accept (*this);
111
112 tree_expression *default_value = val.initializer_expression ();
113
114 if (default_value)
115 default_value->accept (*this);
116 }
117
119 {
120 tree_argument_list *size_args = spec.size_args ();
121
122 if (size_args)
123 size_args->accept (*this);
124 }
125
127 {
128 tree_argument_list *fcn_args = spec.fcn_args ();
129
130 if (fcn_args)
131 fcn_args->accept (*this);
132 }
133
135 {
136 tree_expression *op1 = expr.lhs ();
137
138 if (op1)
139 op1->accept (*this);
140
141 tree_expression *op2 = expr.rhs ();
142
143 if (op2)
144 op2->accept (*this);
145 }
146
148 {
150 }
151
153 {
155 }
156
158 {
159 // Nothing to do.
160 }
161
163 {
164 tree_expression *op1 = expr.base ();
165
166 if (op1)
167 op1->accept (*this);
168
169 tree_expression *op3 = expr.increment ();
170
171 if (op3)
172 op3->accept (*this);
173
174 tree_expression *op2 = expr.limit ();
175
176 if (op2)
177 op2->accept (*this);
178 }
179
181 {
182 // Nothing to do.
183 }
184
186 {
187 tree_decl_init_list *init_list = cmd.initializer_list ();
188
189 if (init_list)
190 init_list->accept (*this);
191 }
192
194 {
195 tree_identifier *id = cmd.ident ();
196
197 if (id)
198 id->accept (*this);
199
200 tree_expression *expr = cmd.expression ();
201
202 if (expr)
203 expr->accept (*this);
204 }
205
207 {
208 // FIXME: tree_decl_elt is not derived from tree, so should it
209 // really have an accept method?
210
211 for (tree_decl_elt *elt : lst)
212 {
213 if (elt)
214 elt->accept (*this);
215 }
216 }
217
219 {
220 tree_expression *lhs = cmd.left_hand_side ();
221
222 if (lhs)
223 lhs->accept (*this);
224
225 tree_expression *expr = cmd.control_expr ();
226
227 if (expr)
228 expr->accept (*this);
229
230 tree_expression *maxproc = cmd.maxproc_expr ();
231
232 if (maxproc)
233 maxproc->accept (*this);
234
235 tree_statement_list *list = cmd.body ();
236
237 if (list)
238 list->accept (*this);
239 }
240
242 {
244
245 if (lhs)
246 lhs->accept (*this);
247
248 tree_expression *expr = cmd.control_expr ();
249
250 if (expr)
251 expr->accept (*this);
252
253 tree_statement_list *list = cmd.body ();
254
255 if (list)
256 list->accept (*this);
257 }
258
260 {
261 tree_statement_list *body = cmd.body ();
262
263 if (body)
264 body->accept (*this);
265 }
266
268 {
269 tree_statement_list *cmd_list = fcn.body ();
270
271 if (cmd_list)
272 cmd_list->accept (*this);
273 }
274
276 {
277 tree_statement_list *cmd_list = fcn.body ();
278
279 if (cmd_list)
280 cmd_list->accept (*this);
281 }
282
284 {
285 octave_value fcn = fdef.function ();
286
288
289 if (f)
290 f->accept (*this);
291 }
292
294 {
295 // Nothing to do.
296 }
297
299 {
300 tree_expression *expr = cmd.condition ();
301
302 if (expr)
303 expr->accept (*this);
304
305 tree_statement_list *list = cmd.commands ();
306
307 if (list)
308 list->accept (*this);
309 }
310
312 {
313 tree_if_command_list *list = cmd.cmd_list ();
314
315 if (list)
316 list->accept (*this);
317 }
318
320 {
321 auto p = lst.begin ();
322
323 while (p != lst.end ())
324 {
325 tree_if_clause *elt = *p++;
326
327 if (elt)
328 elt->accept (*this);
329 }
330 }
331
333 {
334 tree_expression *label = cs.case_label ();
335
336 if (label)
337 label->accept (*this);
338
339 tree_statement_list *list = cs.commands ();
340
341 if (list)
342 list->accept (*this);
343 }
344
346 {
347 auto p = lst.begin ();
348
349 while (p != lst.end ())
350 {
351 tree_switch_case *elt = *p++;
352
353 if (elt)
354 elt->accept (*this);
355 }
356 }
357
359 {
360 tree_expression *expr = cmd.switch_value ();
361
362 if (expr)
363 expr->accept (*this);
364
365 tree_switch_case_list *list = cmd.case_list ();
366
367 if (list)
368 list->accept (*this);
369 }
370
372 {
373 tree_expression *e = expr.expression ();
374
375 if (e)
376 e->accept (*this);
377
378 std::list<tree_argument_list *> arg_lists = expr.arg_lists ();
379 std::list<string_vector> arg_names = expr.arg_names ();
380 std::list<tree_expression *> dyn_fields = expr.dyn_fields ();
381
382 auto p_arg_lists = arg_lists.begin ();
383 auto p_arg_names = arg_names.begin ();
384 auto p_dyn_fields = dyn_fields.begin ();
385
386 std::string type_tags = expr.type_tags ();
387 int n = type_tags.length ();
388
389 for (int i = 0; i < n; i++)
390 {
391 switch (type_tags[i])
392 {
393 case '(':
394 case '{':
395 {
396 tree_argument_list *l = *p_arg_lists;
397 if (l)
398 l->accept (*this);
399 }
400 break;
401
402 case '.':
403 {
404 std::string fn = (*p_arg_names)(0);
405 if (fn.empty ())
406 {
407 tree_expression *df = *p_dyn_fields;
408 if (df)
409 df->accept (*this);
410 }
411 }
412 break;
413
414 default:
416 }
417
418 p_arg_lists++;
419 p_arg_names++;
420 p_dyn_fields++;
421 }
422 }
423
425 {
426 auto p = lst.begin ();
427
428 while (p != lst.end ())
429 {
430 tree_argument_list *elt = *p++;
431
432 if (elt)
433 elt->accept (*this);
434 }
435 }
436
438 {
439 auto p = lst.begin ();
440
441 while (p != lst.end ())
442 {
443 tree_argument_list *elt = *p++;
444
445 if (elt)
446 elt->accept (*this);
447 }
448 }
449
451 {
452 tree_argument_list *lhs = expr.left_hand_side ();
453
454 if (lhs)
455 lhs->accept (*this);
456
457 tree_expression *rhs = expr.right_hand_side ();
458
459 if (rhs)
460 rhs->accept (*this);
461 }
462
464 {
465 // Nothing to do.
466 }
467
469 {
470 // Nothing to do.
471 }
472
474 {
475 // Nothing to do.
476 }
477
479 {
480 auto p = lst.begin ();
481
482 while (p != lst.end ())
483 {
484 tree_decl_elt *elt = *p++;
485
486 if (elt)
487 elt->accept (*this);
488 }
489 }
490
492 {
493 tree_expression *e = expr.operand ();
494
495 if (e)
496 e->accept (*this);
497 }
498
500 {
501 tree_expression *e = expr.operand ();
502
503 if (e)
504 e->accept (*this);
505 }
506
508 {
509 // Nothing to do.
510 }
511
513 {
514 tree_expression *lhs = expr.left_hand_side ();
515
516 if (lhs)
517 lhs->accept (*this);
518
519 tree_expression *rhs = expr.right_hand_side ();
520
521 if (rhs)
522 rhs->accept (*this);
523 }
524
526 {
527 tree_command *cmd = stmt.command ();
528
529 if (cmd)
530 cmd->accept (*this);
531 else
532 {
533 tree_expression *expr = stmt.expression ();
534
535 if (expr)
536 expr->accept (*this);
537 }
538 }
539
541 {
542 for (tree_statement *elt : lst)
543 {
544 if (elt)
545 elt->accept (*this);
546 }
547 }
548
550 {
551 tree_statement_list *try_code = cmd.body ();
552
553 if (try_code)
554 try_code->accept (*this);
555
556 tree_identifier *expr_id = cmd.identifier ();
557
558 if (expr_id)
559 expr_id->accept (*this);
560
561 tree_statement_list *catch_code = cmd.cleanup ();
562
563 if (catch_code)
564 catch_code->accept (*this);
565 }
566
568 {
569 tree_statement_list *unwind_protect_code = cmd.body ();
570
571 if (unwind_protect_code)
572 unwind_protect_code->accept (*this);
573
574 tree_statement_list *cleanup_code = cmd.cleanup ();
575
576 if (cleanup_code)
577 cleanup_code->accept (*this);
578 }
579
581 {
582 tree_expression *expr = cmd.condition ();
583
584 if (expr)
585 expr->accept (*this);
586
587 tree_statement_list *list = cmd.body ();
588
589 if (list)
590 list->accept (*this);
591 }
592
594 {
595 tree_statement_list *list = cmd.body ();
596
597 if (list)
598 list->accept (*this);
599
600 tree_expression *expr = cmd.condition ();
601
602 if (expr)
603 expr->accept (*this);
604 }
605
607 {
608 // Nothing to do.
609 }
610
612 {
613 // Nothing to do.
614 }
615
617 {
618 tree_identifier *id = attr.ident ();
619
620 if (id)
621 id->accept (*this);
622
623 tree_expression *expr = attr.expression ();
624
625 if (expr)
626 expr->accept (*this);
627 }
628
630 {
631 for (auto *elt : lst)
632 {
633 if (elt)
634 elt->accept (*this);
635 }
636 }
637
639 {
640 // Nothing to do.
641 }
642
644 {
645 for (auto *elt : lst)
646 {
647 if (elt)
648 elt->accept (*this);
649 }
650 }
651
653 {
654 // FIXME: Should we operate on the tree_arg_validation object or the
655 // identifier and expression parts separately?
656 }
657
659 {
660 for (auto *elt : lst)
661 {
662 if (elt)
663 elt->accept (*this);
664 }
665 }
666
668 {
669 tree_classdef_property_list *property_list = blk.element_list ();
670
671 if (property_list)
672 property_list->accept (*this);
673 }
674
676 {
677 for (auto ov_meth : lst)
678 {
679 octave_user_function *meth = ov_meth.user_function_value ();
680
681 if (meth)
682 meth->accept (*this);
683 }
684 }
685
687 {
688 tree_classdef_methods_list *methods_list = blk.element_list ();
689
690 if (methods_list)
691 methods_list->accept (*this);
692 }
693
695 {
696 // Nothing to do.
697 }
698
700 {
701 for (auto *elt : lst)
702 {
703 if (elt)
704 elt->accept (*this);
705 }
706 }
707
709 {
710 tree_classdef_events_list *events_list = blk.element_list ();
711
712 if (events_list)
713 events_list->accept (*this);
714 }
715
717 {
718 // Nothing to do.
719 }
720
722 {
723 for (auto *elt : lst)
724 {
725 if (elt)
726 elt->accept (*this);
727 }
728 }
729
731 {
732 tree_classdef_enum_list *enum_list = blk.element_list ();
733
734 if (enum_list)
735 enum_list->accept (*this);
736 }
737
739 {
740 for (auto *elt : body.properties_list ())
741 {
742 if (elt)
743 elt->accept (*this);
744 }
745
746 for (auto *elt : body.methods_list ())
747 {
748 if (elt)
749 elt->accept (*this);
750 }
751
752
753 for (auto *elt : body.events_list ())
754 {
755 if (elt)
756 elt->accept (*this);
757 }
758
759 for (auto *elt : body.enum_list ())
760 {
761 if (elt)
762 elt->accept (*this);
763 }
764 }
765
767 {
768 tree_classdef_attribute_list *attribute_list = cdef.attribute_list ();
769
770 if (attribute_list)
771 attribute_list->accept (*this);
772
773 tree_identifier *ident = cdef.ident ();
774
775 if (ident)
776 ident->accept (*this);
777
778 tree_classdef_superclass_list *superclass_list = cdef.superclass_list ();
779
780 if (superclass_list)
781 superclass_list->accept (*this);
782
783 tree_classdef_body *body = cdef.body ();
784
785 if (body)
786 body->accept (*this);
787 }
788}
iterator begin(void)
Definition: base-list.h:65
iterator end(void)
Definition: base-list.h:68
tree_parameter_list * parameter_list(void) const
tree_expression * expression(void) const
void accept(tree_walker &tw)
Definition: pt-args-block.h:65
tree_argument_list * size_args(void)
Definition: pt-args-block.h:63
void accept(tree_walker &tw)
Definition: pt-args-block.h:96
tree_argument_list * fcn_args(void)
Definition: pt-args-block.h:94
tree_expression * identifier_expression(void)
tree_arg_validation_fcns * validation_fcns(void)
tree_identifier * class_name(void)
tree_expression * initializer_expression(void)
tree_arg_size_spec * size_spec(void)
void accept(tree_walker &tw)
Definition: pt-arg-list.h:106
tree_args_block_validation_list * validation_list(void)
tree_args_block_attribute_list * attribute_list(void)
tree_expression * lhs(void)
Definition: pt-binop.h:96
tree_expression * rhs(void)
Definition: pt-binop.h:97
tree_expression * expression(void)
Definition: pt-classdef.h:164
tree_identifier * ident(void)
Definition: pt-classdef.h:162
std::list< tree_classdef_enum_block * > enum_list(void)
Definition: pt-classdef.h:729
std::list< tree_classdef_properties_block * > properties_list(void)
Definition: pt-classdef.h:714
std::list< tree_classdef_methods_block * > methods_list(void)
Definition: pt-classdef.h:719
std::list< tree_classdef_events_block * > events_list(void)
Definition: pt-classdef.h:724
void accept(tree_walker &tw)
Definition: pt-classdef.h:740
void accept(tree_walker &tw)
Definition: pt-classdef.h:621
void accept(tree_walker &tw)
Definition: pt-classdef.h:524
void accept(tree_walker &tw)
Definition: pt-classdef.h:430
void accept(tree_walker &tw)
Definition: pt-classdef.h:377
tree_identifier * ident(void)
Definition: pt-classdef.h:798
tree_classdef_body * body(void)
Definition: pt-classdef.h:803
tree_classdef_attribute_list * attribute_list(void)
Definition: pt-classdef.h:796
tree_classdef_superclass_list * superclass_list(void)
Definition: pt-classdef.h:801
tree_expression * limit(void)
Definition: pt-colon.h:86
tree_expression * base(void)
Definition: pt-colon.h:84
tree_expression * increment(void)
Definition: pt-colon.h:88
tree_statement_list * body(void)
Definition: pt-loop.h:249
tree_expression * control_expr(void)
Definition: pt-loop.h:247
tree_argument_list * left_hand_side(void)
Definition: pt-loop.h:245
tree_decl_init_list * initializer_list(void)
Definition: pt-decl.h:201
void accept(tree_walker &tw)
Definition: pt-decl.h:96
tree_expression * expression(void)
Definition: pt-decl.h:92
tree_identifier * ident(void)
Definition: pt-decl.h:88
void accept(tree_walker &tw)
Definition: pt-decl.h:163
octave_value function(void)
Definition: pt-cmd.h:119
void accept(tree_walker &tw)
Definition: pt-id.h:105
tree_expression * condition(void)
Definition: pt-select.h:69
void accept(tree_walker &tw)
Definition: pt-select.h:75
tree_statement_list * commands(void)
Definition: pt-select.h:71
void accept(tree_walker &tw)
Definition: pt-select.h:116
tree_if_command_list * cmd_list(void)
Definition: pt-select.h:143
std::list< tree_expression * > dyn_fields(void)
Definition: pt-idx.h:92
std::list< tree_argument_list * > arg_lists(void)
Definition: pt-idx.h:86
std::string type_tags(void)
Definition: pt-idx.h:88
std::list< string_vector > arg_names(void)
Definition: pt-idx.h:90
tree_expression * expression(void)
Definition: pt-idx.h:84
tree_expression * right_hand_side(void)
Definition: pt-assign.h:150
tree_argument_list * left_hand_side(void)
Definition: pt-assign.h:148
void accept(tree_walker &tw)
Definition: pt-misc.h:102
tree_expression * right_hand_side(void)
Definition: pt-assign.h:79
tree_expression * left_hand_side(void)
Definition: pt-assign.h:77
tree_expression * maxproc_expr(void)
Definition: pt-loop.h:181
tree_expression * left_hand_side(void)
Definition: pt-loop.h:177
tree_expression * control_expr(void)
Definition: pt-loop.h:179
tree_statement_list * body(void)
Definition: pt-loop.h:183
tree_statement_list * body(void)
Definition: pt-spmd.h:59
void accept(tree_walker &tw)
Definition: pt-stmt.h:199
tree_expression * expression(void)
Definition: pt-stmt.h:101
tree_command * command(void)
Definition: pt-stmt.h:99
void accept(tree_walker &tw)
Definition: pt-select.h:241
tree_expression * case_label(void)
Definition: pt-select.h:194
tree_statement_list * commands(void)
Definition: pt-select.h:196
void accept(tree_walker &tw)
Definition: pt-select.h:200
tree_switch_case_list * case_list(void)
Definition: pt-select.h:271
tree_expression * switch_value(void)
Definition: pt-select.h:269
tree_identifier * identifier(void)
Definition: pt-except.h:70
tree_statement_list * cleanup(void)
Definition: pt-except.h:74
tree_statement_list * body(void)
Definition: pt-except.h:72
tree_expression * operand(void)
Definition: pt-unop.h:72
tree_statement_list * body(void)
Definition: pt-except.h:139
tree_statement_list * cleanup(void)
Definition: pt-except.h:141
virtual void visit_compound_binary_expression(tree_compound_binary_expression &)
Definition: pt-walk.cc:152
virtual void visit_classdef_attribute(tree_classdef_attribute &)
Definition: pt-walk.cc:616
virtual void visit_boolean_expression(tree_boolean_expression &)
Definition: pt-walk.cc:147
virtual void visit_unwind_protect_command(tree_unwind_protect_command &)
Definition: pt-walk.cc:567
virtual void visit_try_catch_command(tree_try_catch_command &)
Definition: pt-walk.cc:549
virtual void visit_if_command_list(tree_if_command_list &)
Definition: pt-walk.cc:319
virtual void visit_classdef_methods_list(tree_classdef_methods_list &)
Definition: pt-walk.cc:675
virtual void visit_multi_assignment(tree_multi_assignment &)
Definition: pt-walk.cc:450
virtual void visit_return_command(tree_return_command &)
Definition: pt-walk.cc:507
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
Definition: pt-walk.cc:686
virtual void visit_continue_command(tree_continue_command &)
Definition: pt-walk.cc:180
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
Definition: pt-walk.cc:730
virtual void visit_classdef(tree_classdef &)
Definition: pt-walk.cc:766
virtual void visit_switch_case_list(tree_switch_case_list &)
Definition: pt-walk.cc:345
virtual void visit_classdef_superclass(tree_classdef_superclass &)
Definition: pt-walk.cc:638
virtual void visit_classdef_property(tree_classdef_property &)
Definition: pt-walk.cc:652
virtual void visit_complex_for_command(tree_complex_for_command &)
Definition: pt-walk.cc:241
virtual void visit_break_command(tree_break_command &)
Definition: pt-walk.cc:157
virtual void visit_matrix(tree_matrix &)
Definition: pt-walk.cc:424
virtual void visit_args_block_validation_list(tree_args_block_validation_list &)
Definition: pt-walk.cc:81
virtual void visit_fcn_handle(tree_fcn_handle &)
Definition: pt-walk.cc:473
virtual void visit_colon_expression(tree_colon_expression &)
Definition: pt-walk.cc:162
virtual void visit_arg_size_spec(tree_arg_size_spec &)
Definition: pt-walk.cc:118
virtual void visit_spmd_command(tree_spmd_command &)
Definition: pt-walk.cc:259
virtual void visit_do_until_command(tree_do_until_command &)
Definition: pt-walk.cc:593
virtual void visit_no_op_command(tree_no_op_command &)
Definition: pt-walk.cc:463
virtual void visit_binary_expression(tree_binary_expression &)
Definition: pt-walk.cc:134
virtual void visit_classdef_events_block(tree_classdef_events_block &)
Definition: pt-walk.cc:708
virtual void visit_simple_for_command(tree_simple_for_command &)
Definition: pt-walk.cc:218
virtual void visit_classdef_property_list(tree_classdef_property_list &)
Definition: pt-walk.cc:658
virtual void visit_postfix_expression(tree_postfix_expression &)
Definition: pt-walk.cc:491
virtual void visit_prefix_expression(tree_prefix_expression &)
Definition: pt-walk.cc:499
virtual void visit_anon_fcn_handle(tree_anon_fcn_handle &)
Definition: pt-walk.cc:34
virtual void visit_classdef_body(tree_classdef_body &)
Definition: pt-walk.cc:738
virtual void visit_classdef_enum(tree_classdef_enum &)
Definition: pt-walk.cc:716
virtual void visit_args_block_attribute_list(tree_args_block_attribute_list &)
Definition: pt-walk.cc:73
virtual void visit_parameter_list(tree_parameter_list &)
Definition: pt-walk.cc:478
virtual void visit_arguments_block(tree_arguments_block &)
Definition: pt-walk.cc:60
virtual void visit_statement(tree_statement &)
Definition: pt-walk.cc:525
virtual void visit_index_expression(tree_index_expression &)
Definition: pt-walk.cc:371
virtual void visit_decl_command(tree_decl_command &)
Definition: pt-walk.cc:185
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
Definition: pt-walk.cc:721
virtual void visit_switch_case(tree_switch_case &)
Definition: pt-walk.cc:332
virtual void visit_cell(tree_cell &)
Definition: pt-walk.cc:437
virtual void visit_identifier(tree_identifier &)
Definition: pt-walk.cc:293
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
Definition: pt-walk.cc:667
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
Definition: pt-walk.cc:643
virtual void visit_decl_init_list(tree_decl_init_list &)
Definition: pt-walk.cc:206
virtual void visit_if_clause(tree_if_clause &)
Definition: pt-walk.cc:298
virtual void visit_statement_list(tree_statement_list &)
Definition: pt-walk.cc:540
virtual void visit_arg_validation_fcns(tree_arg_validation_fcns &)
Definition: pt-walk.cc:126
virtual void visit_if_command(tree_if_command &)
Definition: pt-walk.cc:311
virtual void visit_argument_list(tree_argument_list &)
Definition: pt-walk.cc:47
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
Definition: pt-walk.cc:629
virtual void visit_decl_elt(tree_decl_elt &)
Definition: pt-walk.cc:193
virtual void visit_classdef_event(tree_classdef_event &)
Definition: pt-walk.cc:694
virtual void visit_classdef_events_list(tree_classdef_events_list &)
Definition: pt-walk.cc:699
virtual void visit_constant(tree_constant &)
Definition: pt-walk.cc:468
virtual void visit_simple_assignment(tree_simple_assignment &)
Definition: pt-walk.cc:512
virtual void visit_superclass_ref(tree_superclass_ref &)
Definition: pt-walk.cc:606
virtual void visit_octave_user_script(octave_user_script &)
Definition: pt-walk.cc:267
virtual void visit_arg_validation(tree_arg_validation &)
Definition: pt-walk.cc:90
virtual void visit_octave_user_function(octave_user_function &)
Definition: pt-walk.cc:275
virtual void visit_function_def(tree_function_def &)
Definition: pt-walk.cc:283
virtual void visit_metaclass_query(tree_metaclass_query &)
Definition: pt-walk.cc:611
virtual void visit_while_command(tree_while_command &)
Definition: pt-walk.cc:580
virtual void visit_switch_command(tree_switch_command &)
Definition: pt-walk.cc:358
tree_expression * condition(void)
Definition: pt-loop.h:77
tree_statement_list * body(void)
Definition: pt-loop.h:79
virtual void accept(tree_walker &tw)=0
octave::tree_statement_list * body(void)
Definition: ov-usr-fcn.h:119
octave_user_function * user_function_value(bool=false)
Definition: ov-usr-fcn.h:227
void accept(octave::tree_walker &tw)
Definition: ov-usr-fcn.cc:499
OCTINTERP_API octave_function * function_value(bool silent=false) const
#define panic_impossible()
Definition: error.h:411
static double f(double k, double l_nu, double c_pm)
Definition: randpoisson.cc:118