Milo  0.1
Milo:EquationManipulationProgram
Public Types | Public Member Functions | Private Attributes | Static Private Attributes | List of all members
EqnXMLParser Class Reference
Inheritance diagram for EqnXMLParser:
Inheritance graph
[legend]
Collaboration diagram for EqnXMLParser:
Collaboration graph
[legend]

Public Types

using createPtr = Node *(*)(EqnXMLParser &, Node *)
 

Public Member Functions

 EqnXMLParser (istream &in, Equation &eqn)
 
 ~EqnXMLParser ()
 Virtual destructor.
 
Equation & getEqn () const
 
Node * getFactor (Node *parent)
 
void assertNoAttributes ()
 
- Public Member Functions inherited from XML::Parser
 Parser (std::istream &in, const std::string &root)
 
virtual ~Parser ()
 
bool check (State state, const std::string &tag=std::string())
 
Parser & next (State state, const std::string &tag=std::string())
 
void finish ()
 
const std::string & getTag () const
 
bool getAttribute (const std::string &name, std::string &value)
 
bool hasAttributes ()
 
bool hasElement ()
 
const std::string & getElement ()
 
void syntaxError (const std::string &msg)
 

Private Attributes

Equation & m_eqn
 Reference to Equation object.
 

Static Private Attributes

static const unordered_map< string, createPtr > create_factors
 

Detailed Description

Read XML to build Equation.

Member Typedef Documentation

Function pointer that takes XML and a parent node and returns new node object.

Constructor & Destructor Documentation

EqnXMLParser::EqnXMLParser ( istream &  in,
Equation &  eqn 
)
inline

Constructor for EqnXMLParser.

Parameters
inXML input stream.
eqnEquation object containing node tree.

Member Function Documentation

void EqnXMLParser::assertNoAttributes ( )
inline

Throw an error if there are attributes left.

Equation& EqnXMLParser::getEqn ( ) const
inline

Get reference to Equation object.

Returns
Equation object reference.
Node * EqnXMLParser::getFactor ( Node *  parent)

Get next factor from xml.

Parameters
parentSet parent of factor.
Returns
Parser factor or null if not found.

Member Data Documentation

const unordered_map< string, EqnXMLParser::createPtr > EqnXMLParser::create_factors
staticprivate
Initial value:
=
{ { Differential::name, create<Differential> },
{ Expression::name, create<Expression> },
{ Function::name, create<Function> },
{ Constant::name, create<Constant> },
{ Variable::name, create<Variable> },
{ Number::name, create<Number> },
{ Divide::name, create<Divide> },
{ Input::name, create<Input> },
{ Power::name, create<Power> },
}

Map associating class Node names with a function that will create it.


The documentation for this class was generated from the following file: