1package expressions
2
3import "list"
4
5{
6 a: 1 // comment
7 aaa: 22 // comment
8
9 "": 3
10
11 b: 3
12
13 c: b: a: 4
14 c?: bb?: aaa?: 5
15 c: b: [Name=string]: a: int
16 let alias = 3.14
17 "g\("en")"?: 4
18
19 let alias2 = foo // with comment
20 let aaalias = foo
21 b: bar
22
23 bottom: _|_
24
25 a:
26 b:
27 c: 2
28
29 req!: int
30
31 a: bbbb: c: 3
32 a: b: 3
33 a: bb: cc: 3
34
35 empty: {}
36 emptyNewLine: {
37
38 }
39 someObject: {
40 a: 8
41 aa: 9
42 aaa: 10
43 }
44
45 #someDefinition: {
46 embedding
47
48 field: 2
49 }
50
51 #openDef: {
52 a: int
53 ...
54 }
55
56 attrs: {
57 a: 8 @go(A) // comment
58 aa: 8 @go(A) // comment
59 bb: 9
60 bbb: 10 @go(Bbb) @xml(,attr) // comment
61 bbbb: 100 @go(Bbbb) @xml(,attr) // comment
62 }
63
64 foo: {
65 bar: string @go(-)
66 }
67
68 e: 1 + 2*3
69 e: 1 * 2 * 3 // error
70 e: >=2 & <=3
71 e: >2 & <=(3 + 4)
72 ex: >2 & <=(3 + 4*5)
73 e: >2 & <=3 & <=4
74 e: 1 + 2 + 3 // error
75
76 e: s[1+2]
77 e: s[1:2]
78 e: s[1+2 : 2+4]
79 e: s[2]
80 e: s[2*3]
81 e: s[1+2*3]
82
83 e: a |
84 b |
85 c
86
87 e:
88 a |
89 b | c |
90 d
91
92 e: f(3 + 4 + 5)
93 e: f(3 * 4 * 5)
94 e: f(3 + 4*5)
95
96 e: f(3 + 4 div 5)
97
98 e: 3 < 4 && 5 > 4
99 e: a || b && c || d
100
101 e: a + +b*3
102 e: -a - -b
103
104 e: b + c
105 e: b*c + d
106 e: a*b + c
107 e: a - b - c
108 e: a - (b - c)
109 e: a - b*c
110 e: a - (b * c)
111 e: a * b / c
112 e: a div b + 5
113 e: a / b
114 e: x[a | b]
115 e: x[a/b]
116 e: a & b
117 e: a + +b
118 e: a - -b
119 e: a div -b
120 e: x[a*-b]
121 e: x[a + +b]
122 e: len(longVariableName) * 2
123
124 e: "\(a)"
125 e: 'aa \(aaa) aa'
126 e: "aa \(aaa)"
127
128 e: [1, 2,
129 ]
130 e: [1, 2]
131 e: [1, 2, 3, 4,
132 5, 6, 7, 8]
133 e: [1, 2, 3, 4,
134 5, 6, 7, 8, // maybe force additional comma
135 ]
136 e: [...]
137 e: [
138 ...]
139 e: [...,
140 ]
141 e: [1, 2, ...]
142 e: [1, 2,
143 ...]
144 e: [...int]
145 e: [...int]
146 e: [...int | float]
147 e: [for x in someObject if x > 9 {
148 x
149 }]
150 e: [for x in someObject if x > 9 {x}]
151 e: [
152 for x in someObject
153 if x > 9 {x}]
154 e: [
155 for x in someObject
156 if x > 9 {x}]
157
158 e: [
159 if x > 1 {},
160 if x > 1 {},
161 for x in src {},
162 ]
163
164 for k, v in someObject {
165 "\(k)": v
166 }
167 for k, v in someObject {
168 "\(k)": v
169 }
170
171 e: {
172 for k, v in someObject
173 if k > "a" {
174 "\(k)": v
175 }
176 }
177
178 e: {for k, v in someObject if k > "a" {"\(k)": v}}
179 e: {for k, v in someObject if k > "a" {
180 "\(k)": v
181 }}
182
183 e: {
184 for k, v in someObject
185 let x = v
186 if k > "a" {
187 "\(k)": x
188 }}
189
190 if a |
191 b {
192 c: d
193 }
194
195 e: [{
196 a: 1, b: 2
197 }]
198
199 e: [{
200 a: 1, b: 2
201 },
202 ]
203
204 e: [{
205 a: 1, b: 2
206 }, {
207 c: 1, d: 2
208 }]
209
210 e: [{
211 a: 1, b: 2
212 },
213 3,
214 4,
215 ]
216
217 e: e.f(1, 2)
218
219 e: (3 + 4)
220
221 // field before list
222 f: 3
223 a: [1, 2, // add comma
224 ]
225
226 foo: bar
227
228 a: "foo-bar": 3
229 b: a."foo-bar"
230 c: a."foo-bar".b
231 d: a.
232 "foo-bar"
233 e: a.
234 "foo-bar".
235 b
236 f: 2
237
238 "contains tabs": 123
239 @jsonschema(foo="contains tabs")
240
241 j: cueckoo: _ | [
242 1,
243
244 2,
245 ]
246 k: cueckoo: *[
247 1,
248
249 2,
250 ]
251 l: cueckoo: list.Concat([
252 1,
253
254 2,
255 ])
256
257 m: [1, 2, 3]
258 m: [1, 2, 3]
259 m: [1, 2, 3]
260 m: [1, 2, 3]
261 m: [1, 2, 3]
262 m: [1, 2, 3]
263 m: [1, 2, 3]
264 m: [1, 2, 3]
265 m: [1, 2, 3]
266 m: [if true {1}, 2, 3]
267 n: [1]
268 o: [{}]
269 o: [{}]
270 o: [{}]
271 o: [{}]
272}
View as plain text