XML parser for Marlin steering files.
void setCmdLineParameters(const CommandLineParametersMap &cmdlineparams)
set command line parameters
void write(const std::string &filen) const
Write the parsed XML tree in an other file.
std::vector< std::string > & result()
LCTokenizer(std::vector< std::string > &tokens, char del, size_t max=-1)
void processIncludeElements(TiXmlElement *element, const std::map< std::string, std::string > &constants)
Helper method - recursively replace all with the corresponding file content.
StringParameters * _current
const char * getAttribute(TiXmlNode *node, const std::string &name)
Return named attribute - throws ParseException if attribute doesn't exist.
void processconditions(TiXmlNode *current, const std::string &conditions)
Helper method - recursively moves processors from <if> tags to top level (<execute>) and adds corresp...
Interface for a parser of a steering file to be used with marlin.
XMLParser & operator=(const marlin::XMLParser &)=delete
Helper class for XMLParser.
std::vector< std::string > & _tokens
std::shared_ptr< StringParameters > getParameters(const std::string §ionName) const
Return the StringParameters for the section as read from the xml file.
std::map< std::string, std::shared_ptr< StringParameters > > StringParametersMap
std::string & performConstantReplacement(std::string &value, const std::map< std::string, std::string > &constants)
Always the top level node.
CommandLineParametersMap _cmdlineparams
TiXmlNode * findElement(TiXmlNode *node, const std::string &type, const std::string &attribute, const std::string &value)
Helper method - finds child element of node with given type and attribute value.
void parse()
Parse the input file.
The parent class for everything in the Document Object Model.
void processConstant(TiXmlElement *element, std::map< std::string, std::string > &constants)
void operator()(const char &c)
std::unique_ptr< TiXmlDocument > _doc
void processConstants(TiXmlNode *node, std::map< std::string, std::string > &constants)
void checkForNestedIncludes(const TiXmlNode *node)
void replacegroups(TiXmlNode *section)
Helper method - replaces all <group> tag with corresponding <processor> tags.
Simple parameters class for Marlin.
void parametersFromNode(TiXmlNode *section, std::map< std::string, std::string > &constants, std::pair< unsigned, unsigned > *typeCount=0)
Extracts all parameters from the given node and adss them to the current StringParameters object...
void processIncludeElement(TiXmlElement *element, const std::map< std::string, std::string > &constants, TiXmlDocument &document)
The element is a container class.