GNU Octave  8.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-2023 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 
34 void 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 
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 {
243  tree_argument_list *lhs = cmd.left_hand_side ();
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 
287  octave_function *f = fcn.function_value ();
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:
415  panic_impossible ();
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 
OCTAVE_END_NAMESPACE(octave)
iterator end(void)
Definition: base-list.h:68
iterator begin(void)
Definition: base-list.h:65
octave::tree_statement_list * body(void)
Definition: ov-usr-fcn.h:120
octave_user_function * user_function_value(bool=false)
Definition: ov-usr-fcn.h:228
void accept(octave::tree_walker &tw)
Definition: ov-usr-fcn.cc:499
OCTINTERP_API octave_function * function_value(bool silent=false) 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_arg_size_spec * size_spec(void)
tree_expression * initializer_expression(void)
tree_identifier * class_name(void)
tree_expression * identifier_expression(void)
tree_arg_validation_fcns * validation_fcns(void)
tree_identifier * attribute(void)
void accept(tree_walker &tw)
void accept(tree_walker &tw)
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 * rhs(void)
Definition: pt-binop.h:91
tree_expression * lhs(void)
Definition: pt-binop.h:90
void accept(tree_walker &tw)
Definition: pt-classdef.h:201
tree_identifier * ident(void)
Definition: pt-classdef.h:162
tree_expression * expression(void)
Definition: pt-classdef.h:164
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
void accept(tree_walker &tw)
Definition: pt-classdef.h:740
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: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
void accept(tree_walker &tw)
Definition: pt-classdef.h:261
tree_classdef_body * body(void)
Definition: pt-classdef.h:803
tree_classdef_superclass_list * superclass_list(void)
Definition: pt-classdef.h:801
tree_classdef_attribute_list * attribute_list(void)
Definition: pt-classdef.h:796
tree_identifier * ident(void)
Definition: pt-classdef.h:798
tree_expression * limit(void)
Definition: pt-colon.h:86
tree_expression * increment(void)
Definition: pt-colon.h:88
tree_expression * base(void)
Definition: pt-colon.h:84
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
tree_identifier * ident(void)
Definition: pt-decl.h:88
void accept(tree_walker &tw)
Definition: pt-decl.h:96
tree_expression * expression(void)
Definition: pt-decl.h:92
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
void accept(tree_walker &tw)
Definition: pt-select.h:76
tree_expression * condition(void)
Definition: pt-select.h:70
tree_statement_list * commands(void)
Definition: pt-select.h:72
void accept(tree_walker &tw)
Definition: pt-select.h:117
tree_if_command_list * cmd_list(void)
Definition: pt-select.h:145
tree_expression * expression(void)
Definition: pt-idx.h:84
std::list< tree_argument_list * > arg_lists(void)
Definition: pt-idx.h:86
std::list< tree_expression * > dyn_fields(void)
Definition: pt-idx.h:92
std::string type_tags(void)
Definition: pt-idx.h:88
std::list< string_vector > arg_names(void)
Definition: pt-idx.h:90
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 * left_hand_side(void)
Definition: pt-loop.h:177
tree_expression * maxproc_expr(void)
Definition: pt-loop.h:181
tree_statement_list * body(void)
Definition: pt-loop.h:183
tree_expression * control_expr(void)
Definition: pt-loop.h:179
tree_statement_list * body(void)
Definition: pt-spmd.h:59
void accept(tree_walker &tw)
Definition: pt-stmt.h:199
tree_command * command(void)
Definition: pt-stmt.h:99
tree_expression * expression(void)
Definition: pt-stmt.h:101
void accept(tree_walker &tw)
Definition: pt-select.h:244
tree_statement_list * commands(void)
Definition: pt-select.h:199
tree_expression * case_label(void)
Definition: pt-select.h:197
void accept(tree_walker &tw)
Definition: pt-select.h:203
tree_switch_case_list * case_list(void)
Definition: pt-select.h:274
tree_expression * switch_value(void)
Definition: pt-select.h:272
tree_statement_list * cleanup(void)
Definition: pt-except.h:74
tree_statement_list * body(void)
Definition: pt-except.h:72
tree_identifier * identifier(void)
Definition: pt-except.h:70
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_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_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
#define panic_impossible()
Definition: error.h:508
F77_RET_T const F77_DBLE const F77_DBLE * f
octave_idx_type n
Definition: mx-inlines.cc:753