Make conditionals functional
[mspang/inapt.git] / inapt.h
1 #include <vector>
2
3 struct inapt_conditional;
4
5 struct inapt_action {
6     const char *package;
7     enum action_t { INSTALL, REMOVE, UNSET } action;
8     const char *filename;
9     int linenum;
10     void *obj;
11 };
12
13 struct inapt_block {
14     std::vector<inapt_action *> actions;
15     std::vector<inapt_conditional *> children;
16 };
17
18 struct inapt_conditional {
19     const char *condition;
20     struct inapt_block *then_block;
21     struct inapt_block *else_block;
22 };
23
24 void parser(const char *filename, inapt_block *context);