]> git.llucax.com Git - software/bife/bife++.git/blob - parser.cpp
Added a sample parser.
[software/bife/bife++.git] / parser.cpp
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #include "parser.h"
4 #include <sstream>
5
6 using std::stringstream;
7 using namespace bife;
8
9 #ifdef DEBUG
10 #include <iostream>
11 using std::cerr;
12 using std::endl;
13 #endif
14
15 void Parser::on_start_document(void) {
16 #ifdef DEBUG
17     cerr << "In Parser::on_start_document();" << endl;
18 #endif
19 }
20
21 void Parser::on_end_document(void) {
22 #ifdef DEBUG
23     cerr << "In Parser::on_end_document();" << endl;
24 #endif
25 }
26
27 void Parser::on_start_element(const string& name, const AttributeMap& attrs) {
28 #ifdef DEBUG
29     cerr << "In Parser::on_start_element(name = '" << name << "', attrs = [";
30     if (attrs.size()) {
31         Hash::const_iterator last = attrs.end();
32         last--;
33         for (Hash::const_iterator i = attrs.begin(); i != last; i++) { //last; i++) {
34             cerr << i->first << ": '" << i->second << "', ";
35         }
36         cerr << last->first << ": '" << last->second << "'";
37     }
38     cerr  << "]);" << endl;
39 #endif
40 /*
41     stringstream out;
42     out << "widget = attributes: [";
43     if (attrs.size()) {
44         Hash::const_iterator last = attrs.end();
45         last--;
46         for (Hash::const_iterator i = attrs.begin(); i != last; i++) { //last; i++) {
47             out << i->first << ": '" << i->second << "', ";
48         }
49         out << last->first << ": '" << last->second << "'";
50     }
51     out << "]);" << endl;
52     return out.str();
53 */
54 }
55
56 void Parser::on_end_element(const string& name) {
57 #ifdef DEBUG
58     cerr << "In Parser::on_end_element('" << name << "');" << endl;
59 #endif
60 }
61
62 void Parser::on_characters(const string& chars) {
63 #ifdef DEBUG
64     cerr << "In Parser::on_characters('" << chars << "');" << endl;
65 #endif
66 }
67
68 void Parser::on_comment(const string& text) {
69 #ifdef DEBUG
70     cerr << "In Parser::on_comment('" << text << "');" << endl;
71 #endif
72 }
73
74 void Parser::on_warning(const string& warn) {
75 #ifdef DEBUG
76     cerr << "In Parser::on_warning('" << warn << "');" << endl;
77 #endif
78 }
79
80 void Parser::on_error(const string& error) {
81 #ifdef DEBUG
82     cerr << "In Parser::on_error('" << error << "');" << endl;
83 #endif
84 }
85
86 void Parser::on_fatal_error(const string& error) {
87 #ifdef DEBUG
88     cerr << "In Parser::on_fatal_error('" << error << "');" << endl;
89 #endif
90 }
91
92 void Parser::on_validity_error(const string& error) {
93 #ifdef DEBUG
94     cerr << "In Parser::on_validity_error('" << error << "');" << endl;
95 #endif
96 }
97
98 void Parser::on_validity_warning(const string& warn) {
99 #ifdef DEBUG
100     cerr << "In Parser::on_validity_warning('" << warn << "');" << endl;
101 #endif
102 }
103
104 Parser::Parser(void): root(NULL) {
105 #ifdef DEBUG
106     cerr << "In Parser::Parser();" << endl;
107 #endif
108 }
109
110 //Parser::Parser(const Hash& attrs): attrs(attrs) {
111 //#ifdef DEBUG
112 //    cerr << "In Parser::Parser(attrs = {" /* TODO << attrs */ << "});" << endl;
113 //#endif
114 //}
115
116 Parser::~Parser(void) {
117 #ifdef DEBUG
118     cerr << "In Parser destructor." << endl;
119 #endif
120 }
121 /*
122 Parser::operator string(void) const {
123     stringstream out;
124     return out.str();
125 }
126 */