Tabular-JSON specification

Tabular-JSON is a superset of JSON. Below, the grammer for Tabular-JSON is displayed and compared with JSON. The JSON grammer comes from the official website https://www.json.org/. The grammers use McKeeman Form.

JSON grammer
1
json
 
 
2
element
3
4
value
5
object
6
array
 
7
string
8
number
9
"true"
10
"false"
11
"null"
12
13
object
14
'{' ws '}'
15
'{' members '}'
16
17
members
18
member
19
member ',' members
20
21
member
22
ws string ws ':' element
23
24
array
25
'[' ws ']'
26
'[' elements ']'
27
28
elements
29
element
30
element ',' elements
31
32
element
33
ws value ws
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
string
 
 
 
 
36
'"' characters '"'
37
38
characters
39
""
40
character characters
41
42
character
43
'0020' . '10FFFF' - '"' - '\'
44
'\' escape
45
46
escape
47
'"'
48
'\'
49
'/'
50
'b'
51
'f'
52
'n'
53
'r'
54
't'
55
'u' hex hex hex hex
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
hex
58
digit
59
'A' . 'F'
60
'a' . 'f'
61
62
number
63
integer fraction exponent
64
65
integer
66
digit
67
onenine digits
68
'-' digit
69
'-' onenine digits
70
71
digits
72
digit
73
digit digits
74
75
digit
76
'0'
77
onenine
78
79
onenine
80
'1' . '9'
81
82
fraction
83
""
84
'.' digits
85
86
exponent
87
""
88
'E' sign digits
89
'e' sign digits
90
91
sign
92
""
93
'+'
94
'-'
95
96
ws
97
""
98
space ws
99
tab ws
100
newline ws
101
carriagereturn ws
102
 
 
 
 
 
103
space
104
'0020'
105
106
tab
107
'0009'
108
109
newline
110
'000A'
111
112
carriagereturn
113
'000D'
114
Tabular-JSON grammer
 
1
tabular-json
2
table_contents
3
element
4
5
value
6
object
7
array
8
table
9
string
10
number
11
"true"
12
"false"
13
"null"
14
15
object
16
'{' ws '}'
17
'{' members '}'
18
19
members
20
member
21
member ',' members
22
23
member
24
ws string ws ':' element
25
26
array
27
'[' ws ']'
28
'[' elements ']'
29
30
elements
31
element
32
element ',' elements
33
34
element
35
ws value ws
36
37
table
38
'---' wst newline table_contents newline wst '---'
39
40
table_contents
41
header newline rows
42
43
header
44
field
45
field ',' header
46
47
rows
48
row
49
row newline rows
50
51
field
52
wst string wst
53
wst string wst '.' field
54
55
row
56
wst value wst
57
wst value wst ',' row
58
59
string
60
quoted_string
61
unquoted_string
62
63
quoted_string
64
'"' characters '"'
65
66
characters
67
""
68
character characters
69
70
character
71
'0020' . '10FFFF' - '"' - '\'
72
'\' escape
73
74
escape
75
'"'
76
'\'
77
'/'
78
'b'
79
'f'
80
'n'
81
'r'
82
't'
83
'u' hex hex hex hex
84
85
unquoted_string
86
unquoted_start
87
unquoted_start unquoted_end
88
unquoted_start unquoted_chars unquoted_end
89
90
unquoted_start
91
unquoted_char - wst - digit
92
93
unquoted_end
94
unquoted_char - wst
95
96
unquoted_chars
97
unquoted_char
98
unquoted_char unquoted_chars
99
100
unquoted_char
101
'0020' . '10FFFF' - delimiter
102
103
delimiter
104
'"'
105
','
106
'.'
107
':'
108
'-'
109
'['
110
']'
111
'{'
112
'}'
113
newline
114
115
hex
116
digit
117
'A' . 'F'
118
'a' . 'f'
119
120
number
121
integer fraction exponent
122
123
integer
124
digit
125
onenine digits
126
'-' digit
127
'-' onenine digits
128
129
digits
130
digit
131
digit digits
132
133
digit
134
'0'
135
onenine
136
137
onenine
138
'1' . '9'
139
140
fraction
141
""
142
'.' digits
143
144
exponent
145
""
146
'E' sign digits
147
'e' sign digits
148
149
sign
150
""
151
'+'
152
'-'
153
154
ws
155
""
156
space ws
157
tab ws
158
newline ws
159
carriagereturn ws
160
161
wst
162
""
163
space ws
164
tab ws
165
166
space
167
'0020'
168
169
tab
170
'0009'
171
172
newline
173
'000A'
174
175
carriagereturn
176
'000D'
177
Tabular-JSON grammer, compared with JSON
0
json
1
tabular-json
2
table_contents
3
element
4
5
value
6
object
7
array
8
table
9
string
10
number
11
"true"
12
"false"
13
"null"
14
15
object
16
'{' ws '}'
17
'{' members '}'
18
19
members
20
member
21
member ',' members
22
23
member
24
ws string ws ':' element
25
26
array
27
'[' ws ']'
28
'[' elements ']'
29
30
elements
31
element
32
element ',' elements
33
34
element
35
ws value ws
36
37
table
38
'---' wst newline table_contents newline wst '---'
39
40
table_contents
41
header newline rows
42
43
header
44
field
45
field ',' header
46
47
rows
48
row
49
row newline rows
50
51
field
52
wst string wst
53
wst string wst '.' field
54
55
row
56
wst value wst
57
wst value wst ',' row
58
59
string
60
quoted_string
61
unquoted_string
62
63
quoted_string
64
'"' characters '"'
65
66
characters
67
""
68
character characters
69
70
character
71
'0020' . '10FFFF' - '"' - '\'
72
'\' escape
73
74
escape
75
'"'
76
'\'
77
'/'
78
'b'
79
'f'
80
'n'
81
'r'
82
't'
83
'u' hex hex hex hex
84
85
unquoted_string
86
unquoted_start
87
unquoted_start unquoted_end
88
unquoted_start unquoted_chars unquoted_end
89
90
unquoted_start
91
unquoted_char - wst - digit
92
93
unquoted_end
94
unquoted_char - wst
95
96
unquoted_chars
97
unquoted_char
98
unquoted_char unquoted_chars
99
100
unquoted_char
101
'0020' . '10FFFF' - delimiter
102
103
delimiter
104
'"'
105
','
106
'.'
107
':'
108
'-'
109
'['
110
']'
111
'{'
112
'}'
113
newline
114
115
hex
116
digit
117
'A' . 'F'
118
'a' . 'f'
119
120
number
121
integer fraction exponent
122
123
integer
124
digit
125
onenine digits
126
'-' digit
127
'-' onenine digits
128
129
digits
130
digit
131
digit digits
132
133
digit
134
'0'
135
onenine
136
137
onenine
138
'1' . '9'
139
140
fraction
141
""
142
'.' digits
143
144
exponent
145
""
146
'E' sign digits
147
'e' sign digits
148
149
sign
150
""
151
'+'
152
'-'
153
154
ws
155
""
156
space ws
157
tab ws
158
newline ws
159
carriagereturn ws
160
161
wst
162
""
163
space ws
164
tab ws
165
166
space
167
'0020'
168
169
tab
170
'0009'
171
172
newline
173
'000A'
174
175
carriagereturn
176
'000D'
177