comparison src/pt-arg-list.h @ 4212:8ad52ec4f374

[project @ 2002-12-04 03:50:45 by jwe]
author jwe
date Wed, 04 Dec 2002 03:50:45 +0000
parents 5719210fff4c
children 23d06c9e1edd
comparison
equal deleted inserted replaced
4211:4804f1151361 4212:8ad52ec4f374
39 39
40 // Argument lists. Used to hold the list of expressions that are the 40 // Argument lists. Used to hold the list of expressions that are the
41 // arguments in a function call or index expression. 41 // arguments in a function call or index expression.
42 42
43 class 43 class
44 tree_argument_list : public SLList<tree_expression *> 44 tree_argument_list
45 { 45 {
46 public: 46 public:
47 47
48 tree_argument_list (void) 48 tree_argument_list (void)
49 : SLList<tree_expression *> () { } 49 : lst () { }
50 50
51 tree_argument_list (tree_expression *t) 51 tree_argument_list (tree_expression *t)
52 : SLList<tree_expression *> () { append (t); } 52 : lst () { lst.append (t); }
53 53
54 ~tree_argument_list (void); 54 ~tree_argument_list (void);
55
56 int length (void) const { return lst.length (); }
57
58 void append (tree_expression *&s) { lst.append (s); }
59 void append (tree_expression * const &s) { lst.append (s); }
60
61 tree_expression *&operator () (Pix p) { return lst (p); }
62
63 tree_expression * const &operator () (Pix p) const { return lst (p); }
64
65 Pix first (void) const { return lst.first (); }
66
67 void next (Pix& p) const { return lst.next (p); }
68
69 int remove_front (tree_expression *x) { return lst.remove_front (x); }
70
71 tree_expression *remove_front (void) { return lst.remove_front (); }
55 72
56 int nargout_count (void) const; 73 int nargout_count (void) const;
57 74
58 bool all_elements_are_constant (void) const; 75 bool all_elements_are_constant (void) const;
59 76
62 string_vector get_arg_names (void) const; 79 string_vector get_arg_names (void) const;
63 80
64 void accept (tree_walker& tw); 81 void accept (tree_walker& tw);
65 82
66 private: 83 private:
84
85 // The list of argument list elements.
86 SLList<tree_expression *> lst;
67 87
68 // No copying! 88 // No copying!
69 89
70 tree_argument_list (const tree_argument_list&); 90 tree_argument_list (const tree_argument_list&);
71 91