summaryrefslogtreecommitdiff
path: root/csharp/test/Slice/keyword/Key.ice
blob: c14cb9b47bced6463696a2c6d6e86954b6ea46b8 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
// **********************************************************************
//
// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

module abstract
{

enum as
{
    base
};

struct break
{
    int readonly;
};

interface case
{
    ["amd"] void catch(int checked, out int continue);
};

interface decimal
{
    void default();
};

class delegate
{
    int if;
    void foo(case* else, out int event);
};

class explicit extends delegate implements decimal, case
{
};
["clr:collection"] sequence<as> extern;
dictionary<string, break> while;
["clr:collection"] dictionary<string, as> finally;

class optionalMembers
{
    optional(1) break for;
    optional(2) as goto;
    optional(3) explicit if;
    optional(4) extern catch;
    optional(5) while internal;
    optional(6) finally is;
    optional(7) string namespace;
    optional(8) explicit* null;
};

interface optionalParams
{
    optional(1) break for(optional(2) as goto,
                          optional(3) explicit if,
                          optional(4) extern catch,
                          optional(5) while internal,
                          optional(6) finally is,
                          optional(7) string namespace,
                          optional(8) explicit* null);

    ["amd"]
    optional(1) break continue(optional(2) as goto,
                               optional(3) explicit if,
                               optional(4) extern catch,
                               optional(5) while internal,
                               optional(6) finally is,
                               optional(7) string namespace,
                               optional(8) explicit* null);

    optional(1) break in(out optional(2) as goto,
                         out optional(3) explicit if,
                         out optional(4) extern catch,
                         out optional(5) while internal,
                         out optional(6) finally is,
                         out optional(7) string namespace,
                         out optional(8) explicit* null);

    ["amd"]
    optional(1) break foreach(out optional(2) as goto,
                              out optional(3) explicit if,
                              out optional(4) extern catch,
                              out optional(5) while internal,
                              out optional(6) finally is,
                              out optional(7) string namespace,
                              out optional(8) explicit* null);
};

exception fixed
{
    int for;
};

exception foreach extends fixed
{
    int goto;
    int if;
};

exception BaseMethods
{
    int Data;
    int HelpLink;
    int InnerException;
    int Message;
    int Source;
    int StackTrace;
    int TargetSite;
    int HResult;
    int Equals;
    int GetBaseException;
    int GetHashCode;
    int GetObjectData;
    int GetType;
    int ReferenceEquals;
    int ToString;
};

local interface implicit
{
    as in(break internal, delegate is, explicit lock, case* namespace, decimal* new, delegate* null,
          explicit* operator, int override, int params, int private)
        throws fixed, foreach;
};

const int protected = 0;
const int public = 0;

//
// System as inner module.
//
module System
{

interface Test
{
    void op();
};

};

};

//
// System as outer module.
//
module System
{

interface Test
{
    void op();
};

};