75f69379eee9451050a941eaf435531f98160c35
[deliverable/titan.core.git] / regression_test / compileonly / openTypeNames / Open_type_use.ttcn
1 /******************************************************************************
2 * Copyright (c) 2000-2015 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8
9 // This module tests that the compiler allows both uppercase and lowercase
10 // first letters for the name of an open type alternative
11 module Open_type_use {
12
13 import from IO_based_message language "ASN.1:2002" all;
14
15 // Constants (lowercase first letter)
16 const MyMessage c_message_id1_lower := {
17 id := 1,
18 content := { mySeq := { field1 := 42, field2 := omit }}
19 }
20
21 const MyMessage c_message_id2_lower := {
22 id := 2,
23 content := { myEnum := first}
24 }
25
26 const MyMessage c_message_id3_lower := {
27 id := 3,
28 content := { iNTEGER := 42 }
29 }
30
31 // Constants (uppercase first letter)
32 const MyMessage c_message_id1_upper := {
33 id := 1,
34 content := { MySeq := { field1 := 42, field2 := omit }}
35 }
36
37 const MyMessage c_message_id2_upper := {
38 id := 2,
39 content := { MyEnum := first}
40 }
41
42 const MyMessage c_message_id3_upper := {
43 id := 3,
44 content := { INTEGER := 42 }
45 }
46
47 // Templates (lowercase first letter)
48 template MyMessage t_message_id1_lower := {
49 id := 1,
50 content := { mySeq := { field1 := 42, field2 := omit }}
51 }
52
53 template MyMessage t_message_id2_lower := {
54 id := 2,
55 content := { myEnum := first}
56 }
57
58 template MyMessage t_message_id3_lower := {
59 id := 3,
60 content := { iNTEGER := 42 }
61 }
62
63 // Templates (uppercase first letter)
64 template MyMessage t_message_id1_upper := {
65 id := 1,
66 content := { MySeq := { field1 := 42, field2 := omit }}
67 }
68
69 template MyMessage t_message_id2_upper := {
70 id := 2,
71 content := { MyEnum := first}
72 }
73
74 template MyMessage t_message_id3_upper := {
75 id := 3,
76 content := { INTEGER := 42 }
77 }
78
79 // Value list template (contains both lowercase and uppercase examples)
80 template MyMessage t_message_value_list := (
81 { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },
82 { id := 2, content := { myEnum := first} },
83 { id := 3, content := { iNTEGER := 42 } },
84 { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },
85 { id := 2, content := { MyEnum := second} },
86 { id := 3, content := { INTEGER := -42 } }
87 );
88
89 // Dummy function to declare variables in
90 function f_dummy() {
91 // Variables (lowercase first letter)
92 var MyMessage v_message_id1_lower := {
93 id := 1,
94 content := { mySeq := { field1 := 42, field2 := omit }}
95 }
96
97 var MyMessage v_message_id2_lower := {
98 id := 2,
99 content := { myEnum := first}
100 }
101
102 var MyMessage v_message_id3_lower := {
103 id := 3,
104 content := { iNTEGER := 42 }
105 }
106
107 // Variables (uppercase first letter)
108 var MyMessage v_message_id1_upper := {
109 id := 1,
110 content := { MySeq := { field1 := 42, field2 := omit }}
111 }
112
113 var MyMessage v_message_id2_upper := {
114 id := 2,
115 content := { MyEnum := first}
116 }
117
118 var MyMessage v_message_id3_upper := {
119 id := 3,
120 content := { INTEGER := 42 }
121 }
122
123 // Template variables (lowercase first letter)
124 var template MyMessage vt_message_id1_lower := {
125 id := 1,
126 content := { mySeq := { field1 := 42, field2 := omit }}
127 }
128
129 var template MyMessage vt_message_id2_lower := {
130 id := 2,
131 content := { myEnum := first}
132 }
133
134 var template MyMessage vt_message_id3_lower := {
135 id := 3,
136 content := { iNTEGER := 42 }
137 }
138
139 // Template variables (uppercase first letter)
140 var template MyMessage vt_message_id1_upper := {
141 id := 1,
142 content := { MySeq := { field1 := 42, field2 := omit }}
143 }
144
145 var template MyMessage vt_message_id2_upper := {
146 id := 2,
147 content := { MyEnum := first}
148 }
149
150 var template MyMessage vt_message_id3_upper := {
151 id := 3,
152 content := { INTEGER := 42 }
153 }
154
155 // Value list template variable (contains both lowercase and uppercase examples)
156 var template MyMessage vt_message_value_list := (
157 { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },
158 { id := 2, content := { myEnum := first} },
159 { id := 3, content := { iNTEGER := 42 } },
160 { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },
161 { id := 2, content := { MyEnum := second} },
162 { id := 3, content := { INTEGER := -42 } }
163 );
164
165 // Referencing fields of open types (contains both lowercase and uppercase examples)
166 v_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };
167 v_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };
168 v_message_id2_lower.content.myEnum := second;
169 v_message_id2_upper.content.MyEnum := second;
170 v_message_id3_lower.content.iNTEGER := 15;
171 v_message_id3_upper.content.INTEGER := 15;
172 vt_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };
173 vt_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };
174 vt_message_id2_lower.content.myEnum := second;
175 vt_message_id2_upper.content.MyEnum := second;
176 vt_message_id3_lower.content.iNTEGER := 15;
177 vt_message_id3_upper.content.INTEGER := 15;
178 if (c_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and
179 c_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and
180 c_message_id2_lower.content.myEnum == second and
181 c_message_id2_upper.content.MyEnum == second and
182 c_message_id3_lower.content.iNTEGER == 15 and
183 c_message_id3_upper.content.INTEGER == 15) {
184 log("a");
185 }
186 if (v_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and
187 v_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and
188 v_message_id2_lower.content.myEnum == second and
189 v_message_id2_upper.content.MyEnum == second and
190 v_message_id3_lower.content.iNTEGER == 15 and
191 v_message_id3_upper.content.INTEGER == 15) {
192 log("b");
193 }
194 if (match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.mySeq) and
195 match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.MySeq) and
196 match(second, t_message_id2_lower.content.myEnum) and
197 match(second, t_message_id2_lower.content.MyEnum) and
198 match(15, t_message_id3_lower.content.iNTEGER) and
199 match(15, t_message_id3_lower.content.INTEGER)) {
200 log("c");
201 }
202 if (match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.mySeq) and
203 match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.MySeq) and
204 match(second, vt_message_id2_upper.content.myEnum) and
205 match(second, vt_message_id2_upper.content.MyEnum) and
206 match(15, vt_message_id3_upper.content.iNTEGER) and
207 match(15, vt_message_id3_upper.content.INTEGER)) {
208 log("d");
209 }
210 }
211
212 }
This page took 0.036608 seconds and 4 git commands to generate.