Milo  0.1
Milo:EquationManipulationProgram
Classes | Namespaces | Enumerations | Functions
xml.h File Reference
#include <iostream>
#include <vector>
#include <unordered_map>
#include <stack>
#include <regex>
Include dependency graph for xml.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XML::FSM
 
class  XML::Stream
 
class  XML::Parser
 

Namespaces

 XML
 

Enumerations

enum  XML::State {
  HEADER =1, HEADER_END =2, FOOTER =4, ATOM_END =8,
  NAME_VALUE =16, ELEMENT =32, NEW =64, ILLEGAL =128,
  FINISH =256
}
 

Functions

Stream & XML::operator<< (Stream &xml, State state)
 
Stream & XML::operator<< (Stream &xml, const std::string &tag)
 
void XML::escape_tag (std::string &tag)
 
void XML::unescape_tag (std::string &tag)
 

Detailed Description

This file is the interface to the XML input and output stream The XML output stream is used to serialize the equation tree to an XML file. The XML input stream is to deserialize the XML file into an equation tree

Both streams are designed as state machines. Each class can set expectations on what they see in the input (and throw exceptions) and construct the class object appriopately. Classes also need to construct their XML output correctly or XML state machinge will throw an exception.