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: bar: string @go(-)
65
66 e: 1+2*3
67 e: 1*2*3 // error
68 e: >=2 & <=3
69 e: >2 & <=(3 + 4)
70 ex: >2 & <=(3 + 4*5)
71 e: >2 & <=3 & <=4
72 e: 1 + 2 + 3 // error
73
74 e: s[1+2]
75 e: s[1:2]
76 e: s[1+2:2+4]
77 e: s[2]
78 e: s[2*3]
79 e: s[1+2*3]
80
81 e: a |
82 b|
83 c
84
85 e:
86 a|
87 b| c |
88 d
89
90 e: f(3+4+5)
91 e: f(3*4*5)
92 e: f(3+4*5)
93
94 e: f(3 + 4 div 5)
95
96 e: 3<4&&5>4
97 e: a || b && c || d
98
99 e: a + +b * 3
100 e: -a - -b
101
102 e: b + c
103 e: b*c + d
104 e: a*b + c
105 e: a - b - c
106 e: a - (b - c)
107 e: a - b*c
108 e: a - (b * c)
109 e: a * b / c
110 e: a div b + 5
111 e: a / b
112 e: x[a|b]
113 e: x[a /b]
114 e: a & b
115 e: a + +b
116 e: a - -b
117 e: a div - b
118 e: x[a*-b]
119 e: x[a + +b]
120 e: len(longVariableName) * 2
121
122 e: "\(a)"
123 e: 'aa \(aaa) aa'
124 e: "aa \(aaa)"
125
126 e: [1, 2
127 ]
128 e: [1, 2]
129 e: [1, 2, 3, 4,
130 5, 6, 7, 8]
131 e: [1, 2, 3, 4,
132 5, 6, 7, 8 // maybe force additional comma
133 ]
134 e: [...]
135 e: [
136 ...]
137 e: [...
138 ]
139 e: [1, 2, ...]
140 e: [1, 2,
141 ...]
142 e: [...int]
143 e: [...int,]
144 e: [...int | float]
145 e: [for x in someObject if x > 9 {
146 x
147 }]
148 e: [for x in someObject if x > 9 {x}]
149 e: [
150 for x in someObject
151 if x > 9 {x}]
152 e: [
153 for x in someObject
154 if x > 9
155 {x}]
156
157 e: [
158 if x > 1 {},
159 if x > 1 {},
160 for x in src {},
161 ]
162
163 for k, v in someObject {
164 "\(k)": v
165 }
166 for k, v in someObject {
167 "\(k)": v
168 }
169
170 e: {
171 for k, v in someObject
172 if k > "a" {
173 "\(k)":v
174 }
175 }
176
177 e: { for k, v in someObject if k > "a" {"\(k)":v} }
178 e: { for k, v in someObject if k > "a" {
179 "\(k)":v }}
180
181 e: {
182 for k, v in someObject
183 let x = v
184 if k > "a" {
185 "\(k)":x}}
186
187 if a |
188 b {
189 c: d
190 }
191
192 e: [{
193 a: 1, b: 2,
194 }]
195
196 e: [{
197 a: 1, b: 2,
198 },
199 ]
200
201 e: [{
202 a: 1, b: 2,
203 }, {
204 c: 1, d: 2,
205 }]
206
207 e: [{
208 a: 1, b: 2,
209 },
210 3,
211 4,
212 ]
213
214 e: e.f(1, 2)
215
216 e: ((3 + 4))
217
218 // field before list
219 f: 3
220 a: [1, 2 // add comma
221 ]
222
223 foo : bar
224
225 a: "foo-bar": 3
226 b: a."foo-bar"
227 c: a. "foo-bar" . b
228 d: a.
229 "foo-bar"
230 e: a.
231 "foo-bar".
232 b
233 f: 2
234
235 "contains tabs": 123
236 @jsonschema(foo="contains tabs")
237
238 j: cueckoo: _ | [
239 1,
240
241 2,
242 ]
243 k: cueckoo: *[
244 1,
245
246 2,
247 ]
248 l: cueckoo: list.Concat([
249 1,
250
251 2,
252 ])
253
254 m: [1, 2, 3]
255 m: [1, 2, 3,]
256 m: [ 1, 2, 3, ]
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: [ if true { 1 }, 2, 3]
264 n: [ 1]
265 o: [{}]
266 o: [ {}]
267 o: [{} ]
268 o: [ {} ]
269}
View as plain text