forked from freeorion/freeorion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEnumParser.h
87 lines (68 loc) · 3.11 KB
/
EnumParser.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#ifndef _EnumParser_h_
#define _EnumParser_h_
#include "Lexer.h"
#include "ParseImpl.h"
#include "../universe/ValueRef.h"
#include "../universe/EnumsFwd.h"
#include <boost/spirit/include/qi.hpp>
struct UnlockableItem;
namespace parse {
struct empire_affiliation_enum_grammar : public detail::enum_grammar<EmpireAffiliationType> {
empire_affiliation_enum_grammar(const parse::lexer& tok);
detail::enum_rule<EmpireAffiliationType> rule;
};
struct unlockable_item_enum_grammar : public detail::enum_grammar<UnlockableItemType> {
unlockable_item_enum_grammar(const parse::lexer& tok);
detail::enum_rule<UnlockableItemType> rule;
};
struct give_empire_unlockable_item_enum_grammar : public detail::enum_grammar<UnlockableItemType> {
give_empire_unlockable_item_enum_grammar(const parse::lexer& tok);
detail::enum_rule<UnlockableItemType> rule;
};
struct ship_slot_enum_grammar : public detail::enum_grammar<ShipSlotType> {
ship_slot_enum_grammar(const parse::lexer& tok);
detail::enum_rule<ShipSlotType> rule;
};
struct ship_part_class_enum_grammar : public detail::enum_grammar<ShipPartClass> {
ship_part_class_enum_grammar(const parse::lexer& tok);
detail::enum_rule<ShipPartClass> rule;
};
struct capture_result_enum_grammar : public detail::enum_grammar<CaptureResult> {
capture_result_enum_grammar(const parse::lexer& tok);
detail::enum_rule<CaptureResult> rule;
};
struct statistic_enum_grammar : public detail::enum_grammar<ValueRef::StatisticType> {
statistic_enum_grammar(const parse::lexer& tok);
detail::enum_rule<ValueRef::StatisticType> rule;
};
struct resource_type_grammar : public detail::enum_grammar<ResourceType> {
resource_type_grammar(const parse::lexer& tok);
detail::enum_rule<ResourceType> rule;
};
struct non_ship_part_meter_enum_grammar : public detail::enum_grammar<MeterType> {
non_ship_part_meter_enum_grammar(const parse::lexer& tok);
detail::enum_rule<MeterType> rule;
};
struct ship_part_meter_enum_grammar : public detail::enum_grammar<MeterType> {
ship_part_meter_enum_grammar(const parse::lexer& tok);
detail::enum_rule<MeterType> rule;
};
struct set_non_ship_part_meter_enum_grammar : public detail::enum_grammar<MeterType> {
set_non_ship_part_meter_enum_grammar(const parse::lexer& tok);
detail::enum_rule<MeterType> rule;
};
struct set_ship_part_meter_enum_grammar : public detail::enum_grammar<MeterType> {
set_ship_part_meter_enum_grammar(const parse::lexer& tok);
detail::enum_rule<MeterType> rule;
};
namespace detail {
using unlockable_item_rule_type = rule<UnlockableItem ()>;
using unlockable_item_grammar_type = grammar<UnlockableItem ()>;
struct unlockable_item_grammar : public unlockable_item_grammar_type {
unlockable_item_grammar(const parse::lexer& tok, Labeller& label);
parse::unlockable_item_enum_grammar unlockable_item_type_enum;
unlockable_item_rule_type start;
};
}
}
#endif