aboutsummaryrefslogtreecommitdiffstats
path: root/interfaces/org.qface.meta.qface
blob: ae496fbd321faf73a028a2da37bac1d634bb35aa (plain)
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
 module org.qface.meta 1.0

interface MetaBuilder {
    ESystem system;
    void load(string path);
    void store(string path);
}

struct EType {
    bool isComplex
    bool isPrimitive;
    bool isString;
    bool isBool;
    bool isInt;
    bool isReal;
    bool isList;
    bool isModel;
    string name;
}

struct ESystem {
    list<EModule> modules;
}

struct EModule {
    list<EInterface> interfaces;
    list<EStruct> structs;
    list<EEnum> enums;
    list<EFlag> flags;
}

struct EInterface {
    string name;
    list<EProperty> properties;
    list<EOperation> operations;
    list<ESignal> signals;
}

struct EProperty {
    string name
    EType type
}

struct EOperation {
    string name;
    EType type;
    list<EParameter> parameters;
}

struct ESignal {
    string name;
    list<EParameter> parameters;
}

struct EStruct {
    string name;
    list<EField> fields;
}

struct EField {
    string name;
    EType type;
}

struct Enum {
    string name
    model<EEnumMember> members;
}

struct EEnumMember {
    int value;
    string name;
}

struct EFlag {
    string name
    model<EEnumMember> members;
}