10 #ifndef ICE_STORM_PARSER_H
11 #define ICE_STORM_PARSER_H
17 #include <IceStorm/IceStorm.h>
18 #include <IceUtil/Handle.h>
24 #define YYSTYPE std::list<std::string>
25 #define YY_DECL int yylex(YYSTYPE* yylvalp)
36 #define YYMAXDEPTH 10000
38 YYMAXDEPTH // Initial depth is set to max depth, for the reasons described above.
44 #define yyoverflow(a, b, c, d, e, f) yyerror(a)
53 typedef ::IceUtil::Handle<Parser>
ParserPtr;
55 class Parser :
public ::IceUtil::SimpleShared
60 const std::map<Ice::Identity, TopicManagerPrx>&);
64 void create(
const std::list<std::string>&);
65 void destroy(
const std::list<std::string>&);
66 void link(
const std::list<std::string>&);
67 void unlink(
const std::list<std::string>&);
68 void links(
const std::list<std::string>&);
69 void topics(
const std::list<std::string>&);
70 void replica(
const std::list<std::string>&);
72 void current(
const std::list<std::string>&);
82 void getInput(
char*,
size_t&,
size_t);
87 void error(
const char*);
88 void error(
const std::string&);
91 void warning(
const std::string&);
95 int parse(FILE*,
bool);
96 int parse(
const std::string&,
bool);
99 TopicManagerPrx findManagerById(
const std::string&, std::string&)
const;
101 TopicPrx findTopic(
const std::string&)
const;
105 const std::map<Ice::Identity, TopicManagerPrx>&);
107 void exception(
const Ice::Exception&,
bool =
false);
111 const std::map<Ice::Identity, TopicManagerPrx> _managers;
112 std::string _commands;