Mercurial > hg > octave-lyh
comparison src/pt-arg-list.h @ 4219:23d06c9e1edd
[project @ 2002-12-06 21:29:17 by jwe]
author | jwe |
---|---|
date | Fri, 06 Dec 2002 21:29:19 +0000 |
parents | 8ad52ec4f374 |
children | 90e44267e8cf |
comparison
equal
deleted
inserted
replaced
4218:4a392a01e51a | 4219:23d06c9e1edd |
---|---|
25 | 25 |
26 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION) | 26 #if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION) |
27 #pragma interface | 27 #pragma interface |
28 #endif | 28 #endif |
29 | 29 |
30 #include <SLList.h> | |
31 | |
32 class octave_value_list; | 30 class octave_value_list; |
33 | 31 |
34 class tree_expression; | 32 class tree_expression; |
35 | 33 |
36 class tree_walker; | 34 class tree_walker; |
37 | 35 |
38 #include "str-vec.h" | 36 #include "str-vec.h" |
39 | 37 |
38 #include "base-list.h" | |
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 | 44 tree_argument_list : public octave_base_list<tree_expression *> |
45 { | 45 { |
46 public: | 46 public: |
47 | 47 |
48 tree_argument_list (void) | 48 tree_argument_list (void) { } |
49 : lst () { } | |
50 | 49 |
51 tree_argument_list (tree_expression *t) | 50 tree_argument_list (tree_expression *t) { append (t); } |
52 : lst () { lst.append (t); } | |
53 | 51 |
54 ~tree_argument_list (void); | 52 ~tree_argument_list (void); |
55 | 53 |
56 int length (void) const { return lst.length (); } | 54 tree_expression *remove_front (void) |
57 | 55 { |
58 void append (tree_expression *&s) { lst.append (s); } | 56 iterator p = begin (); |
59 void append (tree_expression * const &s) { lst.append (s); } | 57 tree_expression *retval = *p; |
60 | 58 erase (p); |
61 tree_expression *&operator () (Pix p) { return lst (p); } | 59 return retval; |
62 | 60 } |
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 (); } | |
72 | 61 |
73 int nargout_count (void) const; | 62 int nargout_count (void) const; |
74 | 63 |
75 bool all_elements_are_constant (void) const; | 64 bool all_elements_are_constant (void) const; |
76 | 65 |
79 string_vector get_arg_names (void) const; | 68 string_vector get_arg_names (void) const; |
80 | 69 |
81 void accept (tree_walker& tw); | 70 void accept (tree_walker& tw); |
82 | 71 |
83 private: | 72 private: |
84 | |
85 // The list of argument list elements. | |
86 SLList<tree_expression *> lst; | |
87 | 73 |
88 // No copying! | 74 // No copying! |
89 | 75 |
90 tree_argument_list (const tree_argument_list&); | 76 tree_argument_list (const tree_argument_list&); |
91 | 77 |