]> SALOME platform Git repositories - modules/yacs.git/blob - src/yacsloader/rootParser.cxx
Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / yacsloader / rootParser.cxx
1
2 #include "rootParser.hxx" 
3 #include "procParsers.hxx" 
4
5 namespace YACS
6 {
7   roottypeParser roottypeParser::rootParser;
8   defaultcasetypeParser defaultcasetypeParser::defaultcaseParser;
9   switchtypeParser switchtypeParser::switchParser;
10   casetypeParser casetypeParser::caseParser;
11   presetdatatypeParser presetdatatypeParser::presetdataParser;
12   outputdatatypeParser outputdatatypeParser::outputdataParser;
13
14 void roottypeParser::proc (YACS::ENGINE::Proc* const& b)
15 {
16       DEBTRACE( "root_proc_set" << b->getName() )
17       _proc=b;
18 }
19
20 void roottypeParser::onStart(const XML_Char* el, const XML_Char** attr)
21 {
22       DEBTRACE( "roottypeParser::onStart: " << el )
23       std::string element(el);
24       parser* pp=&parser::main_parser;
25       if(element == "proc")pp=&proctypeParser<>::procParser;
26       SetUserDataAndPush(pp);
27       pp->init();
28       pp->pre();
29       pp->buildAttr(attr);
30 }
31
32 void roottypeParser::onEnd(const char *el,parser* child)
33 {
34       DEBTRACE( "roottypeParser::onEnd: " << el )
35       std::string element(el);
36       if(element == "proc")proc(((proctypeParser<>*)child)->post());
37 }
38
39 void roottypeParser::setDefaultMap(std::map<std::string,parser*> *defaultMap)
40 {
41   proctypeParser<>::procParser._defaultParsersMap=defaultMap;
42 }
43
44 }