comparison src/pt-decl.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 e35b034d3523
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 tree_expression; 30 class tree_expression;
33 class tree_identifier; 31 class tree_identifier;
34 32
35 class tree_walker; 33 class tree_walker;
36 34
37 #include <string> 35 #include <string>
38 36
37 #include "base-list.h"
39 #include "pt-cmd.h" 38 #include "pt-cmd.h"
40 39
41 // List of expressions that make up a declaration statement. 40 // List of expressions that make up a declaration statement.
42 41
43 class 42 class
74 73
75 tree_decl_elt& operator = (const tree_decl_elt&); 74 tree_decl_elt& operator = (const tree_decl_elt&);
76 }; 75 };
77 76
78 class 77 class
79 tree_decl_init_list 78 tree_decl_init_list : public octave_base_list<tree_decl_elt *>
80 { 79 {
81 public: 80 public:
82 81
83 tree_decl_init_list (void) 82 tree_decl_init_list (void) { }
84 : lst () { } 83
85 84 tree_decl_init_list (tree_decl_elt *t) { append (t); }
86 tree_decl_init_list (tree_decl_elt *t)
87 : lst () { lst.append (t); }
88 85
89 ~tree_decl_init_list (void) 86 ~tree_decl_init_list (void)
90 { 87 {
91 while (! lst.empty ()) 88 while (! empty ())
92 { 89 {
93 tree_decl_elt *t = lst.remove_front (); 90 iterator p = begin ();
94 delete t; 91 delete *p;
92 erase (p);
95 } 93 }
96 } 94 }
97 95
98 void append (tree_decl_elt *&s) { lst.append (s); }
99 void append (tree_decl_elt * const &s) { lst.append (s); }
100
101 tree_decl_elt *&operator () (Pix p) { return lst (p); }
102
103 tree_decl_elt * const &operator () (Pix p) const { return lst (p); }
104
105 Pix first (void) const { return lst.first (); }
106
107 void next (Pix& p) const { return lst.next (p); }
108
109 void eval (tree_decl_elt::eval_fcn); 96 void eval (tree_decl_elt::eval_fcn);
110 97
111 void accept (tree_walker& tw); 98 void accept (tree_walker& tw);
112 99
113 private: 100 private:
114
115 // The list of variables/initializers.
116 SLList<tree_decl_elt *> lst;
117 101
118 // No copying! 102 // No copying!
119 103
120 tree_decl_init_list (const tree_decl_init_list&); 104 tree_decl_init_list (const tree_decl_init_list&);
121 105