Mercurial > octave
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 |