CBMC
xml_parser.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: 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 
17 int yyxmlparse();
18 
19 class xml_parsert:public parsert
20 {
21 public:
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  {
44  parse_tree.clear();
45  // set up stack
46  stack.clear();
47  stack.push_back(&parse_tree.element);
48  }
49 };
50 
51 extern xml_parsert xml_parser;
52 
53 int yyxmlerror(const std::string &error);
54 
55 // 'do it all' functions
56 bool parse_xml(
57  std::istream &in,
58  const std::string &filename,
59  message_handlert &message_handler,
60  xmlt &dest);
61 
62 bool parse_xml(
63  const std::string &filename,
64  message_handlert &message_handler,
65  xmlt &dest);
66 
67 #endif // CPROVER_XMLLANG_XML_PARSER_H
xmlt::elements
elementst elements
Definition: xml.h:42
yyxmlerror
int yyxmlerror(const std::string &error)
xml_parse_treet::element
xmlt element
Definition: xml_parse_tree.h:19
xml_parse_tree.h
xml_parsert::parse_tree
xml_parse_treet parse_tree
Definition: xml_parser.h:22
parse_xml
bool parse_xml(std::istream &in, const std::string &filename, message_handlert &message_handler, xmlt &dest)
Definition: xml_parser.cpp:16
xml_parsert::current
xmlt & current()
Definition: xml_parser.h:26
xml_parsert::clear
virtual void clear()
Definition: xml_parser.h:42
xml_parser
xml_parsert xml_parser
Definition: xml_parser.cpp:13
xml_parse_treet
Definition: xml_parse_tree.h:15
yyxmlparse
int yyxmlparse()
xml_parse_treet::clear
void clear()
Definition: xml_parse_tree.cpp:17
message_handlert
Definition: message.h:27
parsert
Definition: parser.h:23
xmlt
Definition: xml.h:20
xml_parsert::new_level
void new_level()
Definition: xml_parser.h:36
parser.h
xml_parsert::stack
std::list< xmlt * > stack
Definition: xml_parser.h:24
xml_parsert
Definition: xml_parser.h:19
xml_parsert::parse
virtual bool parse()
Definition: xml_parser.h:31