File: EnumParser.h

package info (click to toggle)
freeorion 0.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 194,940 kB
  • sloc: cpp: 186,508; python: 40,969; ansic: 1,164; xml: 719; makefile: 32; sh: 7
file content (87 lines) | stat: -rw-r--r-- 3,184 bytes parent folder | download
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