28 #include "../util/macros.hpp"
31 for (int __i = 0; __i < block; __i++) ret << " ";
32 #define BEGIN_BLOCK block += 2;
33 #define END_BLOCK block -= 2;
34 #define current_element(it) (*it)
35 #define foreach(it, list) for (it = list->begin(); it != list->end(); it++)
36 #define foreachReverse(it, list) for (it = list->rbegin(); it != list->rend(); it++)
228 template <
typename T1>
231 typename std::list<T1>::iterator it;
233 for (
int j = 1; j < n; j++) {
239 template <
typename T1>
246 template <
typename T1>
253 template <
typename T1>
260 template <
typename T1>
263 typename std::list<T1>::iterator insert_it = it;
264 if (insert_it != l1->end()) {
267 l1->insert(insert_it, 1, e);
270 template <
typename T1>
276 template <
typename T1>
279 l1->insert(l1->end(), l2->begin(), l2->end());
283 template <
typename T1>
286 list<T1> *ls =
new list<T1>;
287 ls->assign(l1->begin(), l1->end());
291 template <
typename T1>
297 template <
typename T1>
300 typename list<T1>::iterator it = l1->begin();
301 for (
int c = 0; c < i; c++) {
304 if (it != l1->end()) {
310 template <
typename T1>
313 list<T1> *ls =
new list<T1>;
318 template <
typename T1>
319 void AST_ListPrint(list<T1> *l1, ostream &ret,
string sec_name =
"",
string separator =
" ",
string opener =
"",
string closer =
"",
322 typename list<T1>::iterator it;
323 int size = l1->size(), i = 1;
330 ret << (i < size ? separator :
"");