forked from ajaxorg/ace
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ion.ion
68 lines (62 loc) · 1.36 KB
/
ion.ion
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
// Comment
/*
Multi
Line
Comment
*/
[1,2,3,45 /*TODO: should be 42, obviously*/, 2016-04-21T08:10:46Z, 2016-04-21T08:10:46-08:00, 2016-04-21, 2016, 0x5, 0b0110]
(5 7 1 3 [
'a', 'b',
null, null.int, null.bool, null.list,
true, false,
nan, -inf, +inf,
"str",
"str with embedded \" ",
'''str with embedded \''' ''',
{{"clob content"}},
{{ AB/ }}
])
'''
multi
line
string
'''
states::{
// https://amzn.github.io/ion-docs/docs/spec.html
root: rules::[
include::'value'
],
// https://amzn.github.io/ion-docs/docs/spec.html#string
string: rules::[
match :: {
regex: "(\\\")((?:\\\\\"|[^\"])*)(\\\")",
token: ['string.dblq.punc.start', 'string.dblq', 'string.dblq.punc.end']
},
push::{
regex: "\'{3}",
token: 'string.trpq.punc.start',
states: rules::[
pop :: {
regex: "\'{3}",
token: 'string.trpq.punc.end',
},
match::{
regex: "(?:\\\\'*|.|[^']*)",
token: 'string.trpq'
}
]
},
],
/*
...
*/
}
{
"json": {
"compatibility": true,
"open sourced": "2016-04-21T08:10:46Z",
"foo": 9,
"bar": 1.1,
"baz": [{"id": 1}, {"id":2}]
}
}