ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/Iffy/Cleaner.cpp
(Generate patch)

Comparing Iffy/Cleaner.cpp (file contents):
Revision 297 by douglas, 2004-12-11T01:33:37-08:00 vs.
Revision 298 by douglas, 2004-12-11T23:10:30-08:00

# Line 6 | Line 6
6  
7   #include "Cleaner.hpp"
8  
9 + #include <menes-ext/stack.hpp>
10 +
11   void Cleaner::clean()
12   {
11        // XXX: do stuff
12
13          if (segments.First().type != TAG || segments.First().tag != "html")
14          {
15                  Tag tag(OPEN, "html");
# Line 30 | Line 30 | void Cleaner::clean()
30  
31                  segments.InsertLast(tag);
32          }
33 }
33  
34 < ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Cleaner& cleaner)
35 < {
36 <        _foreach (ext::Vector<Segment>, segment, cleaner.segments)
34 >        ext::Stack<ext::Vector<Segment>::Iterator> opens;
35 >
36 >        _mforeach (ext::Vector<Segment>, segment, segments) switch (segment->tag)
37 >        {
38 >        case OPEN:
39 >                opens.Push(segment);
40 >        case STANDALONE:
41 >                break;
42 >        case CLOSE:
43 >                if (segment->tag != ext::String(opens.Top()->tag))
44 >                {
45 >                        // XXX: do stuff
46 >                }
47 >
48 >                opens.Pop();
49 >        }
50 >
51 > /*      _foreach (ext::Vector<Segment>, segment, segments)
52          {
53                  switch (segment->type)
54                  {
55                  case TEXT:
56 <                        pout << segment->text;
56 >                        api::Cerr << "TEXT";
57  
58                          break;
59                  case TAG:
60 <                        pout << segment->tag;
60 >                        api::Cerr << "TAG ";
61 >
62 >                        switch (segment->tag)
63 >                        {
64 >                        case OPEN:
65 >                                api::Cerr << "OPEN\t";
66 >
67 >                                break;
68 >                        case CLOSE:
69 >                                api::Cerr << "CLOSE\t";
70 >
71 >                                break;
72 >                        case STANDALONE:
73 >                                api::Cerr << "STANDALONE\t";
74 >                        }
75 >
76 >                        api::Cerr << ext::String(segment->tag);
77                  }
78 +
79 +                api::Cerr << ios::NewLine;
80 +        }*/
81 + }
82 +
83 + ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Cleaner& cleaner)
84 + {
85 +        _foreach (ext::Vector<Segment>, segment, cleaner.segments) switch (segment->type)
86 +        {
87 +        case TEXT:
88 +                pout << segment->text;
89 +
90 +                break;
91 +        case TAG:
92 +                pout << segment->tag;
93          }
94  
95          return pout;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines