cprover
xml_parser.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module:
4
5Author: Daniel Kroening, kroening@kroening.com
6
7\*******************************************************************/
8
9
10#ifndef CPROVER_XMLLANG_XML_PARSER_H
11#define CPROVER_XMLLANG_XML_PARSER_H
12
13#include <util/parser.h>
14
15#include "xml_parse_tree.h"
16
18
19class xml_parsert:public parsert
20{
21public:
23
24 std::list<xmlt *> stack;
25
27 {
28 return *stack.back();
29 }
30
31 virtual bool parse()
32 {
33 return yyxmlparse()!=0;
34 }
35
36 void new_level()
37 {
38 current().elements.push_back(xmlt());
39 stack.push_back(&current().elements.back());
40 }
41
42 virtual void clear()
43 {
45 // set up stack
46 stack.clear();
47 stack.push_back(&parse_tree.element);
48 }
49};
50
52
53int yyxmlerror(const std::string &error);
54
55// 'do it all' functions
56bool parse_xml(
57 std::istream &in,
58 const std::string &filename,
59 message_handlert &message_handler,
60 xmlt &dest);
61
62bool parse_xml(
63 const std::string &filename,
64 message_handlert &message_handler,
65 xmlt &dest);
66
67#endif // CPROVER_XMLLANG_XML_PARSER_H
Definition: parser.h:24
virtual bool parse()
Definition: xml_parser.h:31
std::list< xmlt * > stack
Definition: xml_parser.h:24
void new_level()
Definition: xml_parser.h:36
virtual void clear()
Definition: xml_parser.h:42
xmlt & current()
Definition: xml_parser.h:26
xml_parse_treet parse_tree
Definition: xml_parser.h:22
Definition: xml.h:21
elementst elements
Definition: xml.h:42
Parser utilities.
int yyxmlerror(const std::string &error)
int yyxmlparse()
bool parse_xml(std::istream &in, const std::string &filename, message_handlert &message_handler, xmlt &dest)
Definition: xml_parser.cpp:16
xml_parsert xml_parser
Definition: xml_parser.cpp:13