@tabnas/parser 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2013-2026 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.json = void 0;
|
|
5
|
+
exports.registerJsonGrammar = registerJsonGrammar;
|
|
6
|
+
const defprop = Object.defineProperty;
|
|
7
|
+
// Attach a hidden marker property to a node — used when info.map /
|
|
8
|
+
// info.list mode is on so callers can introspect implicit/explicit
|
|
9
|
+
// container origins. JSON parsing ignores marker properties.
|
|
10
|
+
function mark(node, marker, data) {
|
|
11
|
+
if (node != null && typeof node === 'object') {
|
|
12
|
+
defprop(node, marker, { value: data, writable: true });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
// JSON-only options. Restrictive enough to mirror JSON.parse.
|
|
16
|
+
const JSON_OPTIONS = {
|
|
17
|
+
text: { lex: false },
|
|
18
|
+
number: {
|
|
19
|
+
hex: false,
|
|
20
|
+
oct: false,
|
|
21
|
+
bin: false,
|
|
22
|
+
sep: null,
|
|
23
|
+
exclude: /^00+/,
|
|
24
|
+
},
|
|
25
|
+
string: {
|
|
26
|
+
chars: '"',
|
|
27
|
+
multiChars: '',
|
|
28
|
+
allowUnknown: false,
|
|
29
|
+
escape: { v: null },
|
|
30
|
+
},
|
|
31
|
+
comment: { lex: false },
|
|
32
|
+
map: { extend: false },
|
|
33
|
+
lex: { empty: false },
|
|
34
|
+
rule: { finish: false, include: 'json' },
|
|
35
|
+
result: { fail: [undefined, NaN] },
|
|
36
|
+
tokenSet: { KEY: ['#ST', null, null, null] },
|
|
37
|
+
};
|
|
38
|
+
// Install the pure JSON rule set (val / map / list / pair / elem) on
|
|
39
|
+
// the given Tabnas instance. Exposed so other grammar plugins can layer
|
|
40
|
+
// its extensions on top without re-declaring the JSON core.
|
|
41
|
+
function registerJsonGrammar(tn) {
|
|
42
|
+
const {
|
|
43
|
+
// Complex tokens
|
|
44
|
+
TX, // Text (unquoted character sequence)
|
|
45
|
+
ST, // String (quoted character sequence)
|
|
46
|
+
} = tn.token;
|
|
47
|
+
tn.grammar({
|
|
48
|
+
ref: {
|
|
49
|
+
'@finish': (_rule, ctx) => {
|
|
50
|
+
if (!ctx.cfg.rule.finish) {
|
|
51
|
+
ctx.t0.err = 'end_of_source';
|
|
52
|
+
return ctx.t0;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
},
|
|
56
|
+
// Get key string value from first matching token of `Open` state.
|
|
57
|
+
'@pairkey': (r) => {
|
|
58
|
+
const key_token = r.o0;
|
|
59
|
+
const key = ST === key_token.tin || TX === key_token.tin
|
|
60
|
+
? key_token.val
|
|
61
|
+
: key_token.src;
|
|
62
|
+
r.u.key = key;
|
|
63
|
+
},
|
|
64
|
+
'@val-bo': (rule) => (rule.node = undefined),
|
|
65
|
+
'@val-bc': (r, ctx) => {
|
|
66
|
+
// val can be undefined when there is no value at all (eg. empty
|
|
67
|
+
// string, thus no matched opening token).
|
|
68
|
+
r.node =
|
|
69
|
+
undefined === r.node
|
|
70
|
+
? undefined === r.child.node
|
|
71
|
+
? 0 === r.os
|
|
72
|
+
? undefined
|
|
73
|
+
: (() => {
|
|
74
|
+
let val = r.o0.resolveVal(r, ctx);
|
|
75
|
+
if (ctx.cfg.info.text &&
|
|
76
|
+
typeof val === 'string' &&
|
|
77
|
+
(r.o0.tin === ctx.cfg.t.ST ||
|
|
78
|
+
r.o0.tin === ctx.cfg.t.TX)) {
|
|
79
|
+
const quote = r.o0.tin === ctx.cfg.t.ST && r.o0.src.length > 0
|
|
80
|
+
? r.o0.src[0]
|
|
81
|
+
: '';
|
|
82
|
+
const sv = new String(val);
|
|
83
|
+
mark(sv, ctx.cfg.info.marker, { quote });
|
|
84
|
+
val = sv;
|
|
85
|
+
}
|
|
86
|
+
return val;
|
|
87
|
+
})()
|
|
88
|
+
: r.child.node
|
|
89
|
+
: r.node;
|
|
90
|
+
},
|
|
91
|
+
'@map-bo': (r, ctx) => {
|
|
92
|
+
r.node = Object.create(null);
|
|
93
|
+
if (ctx.cfg.info.map) {
|
|
94
|
+
mark(r.node, ctx.cfg.info.marker, { implicit: false, meta: {} });
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
'@list-bo': (r, ctx) => {
|
|
98
|
+
r.node = [];
|
|
99
|
+
if (ctx.cfg.info.list) {
|
|
100
|
+
mark(r.node, ctx.cfg.info.marker, { implicit: false, meta: {} });
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
'@pair-bc': (r, ctx) => {
|
|
104
|
+
if (r.u.pair) {
|
|
105
|
+
if (ctx.cfg.info.map && r.u.key === ctx.cfg.info.marker) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
r.u.prev = r.node[r.u.key];
|
|
109
|
+
r.node[r.u.key] = r.child.node;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
'@elem-bc': (r) => {
|
|
113
|
+
if (true !== r.u.done && undefined !== r.child.node) {
|
|
114
|
+
r.node.push(r.child.node);
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
rule: {
|
|
119
|
+
val: {
|
|
120
|
+
// Opening token alternates.
|
|
121
|
+
open: [
|
|
122
|
+
// A map: `{ ...`
|
|
123
|
+
{ s: '#OB', p: 'map', b: 1, g: 'map,json' },
|
|
124
|
+
// A list: `[ ...`
|
|
125
|
+
{ s: '#OS', p: 'list', b: 1, g: 'list,json' },
|
|
126
|
+
// A plain value: `x` `"x"` `1` `true` ....
|
|
127
|
+
{ s: '#VAL', g: 'val,json' },
|
|
128
|
+
],
|
|
129
|
+
// Closing token alternates.
|
|
130
|
+
close: [
|
|
131
|
+
// End of input.
|
|
132
|
+
{ s: '#ZZ', g: 'end,json' },
|
|
133
|
+
// There's more JSON.
|
|
134
|
+
{ b: 1, g: 'more,json' },
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
map: {
|
|
138
|
+
open: [
|
|
139
|
+
// An empty map: {}.
|
|
140
|
+
{ s: '#OB #CB', b: 1, n: { pk: 0 }, g: 'map,json' },
|
|
141
|
+
// Start matching map key-value pairs: a:1.
|
|
142
|
+
// Reset counter n.pk as new map (for extensions).
|
|
143
|
+
{ s: '#OB', p: 'pair', n: { pk: 0 }, g: 'map,json,pair' },
|
|
144
|
+
],
|
|
145
|
+
close: [
|
|
146
|
+
// End of map.
|
|
147
|
+
{ s: '#CB', g: 'end,json' },
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
list: {
|
|
151
|
+
open: [
|
|
152
|
+
// An empty list: [].
|
|
153
|
+
{ s: '#OS #CS', b: 1, g: 'list,json' },
|
|
154
|
+
// Start matching list elements: 1,2.
|
|
155
|
+
{ s: '#OS', p: 'elem', g: 'list,elem,json' },
|
|
156
|
+
],
|
|
157
|
+
close: [
|
|
158
|
+
// End of list.
|
|
159
|
+
{ s: '#CS', g: 'end,json' },
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
// sets key:val on node
|
|
163
|
+
pair: {
|
|
164
|
+
open: [
|
|
165
|
+
// Match key-colon start of pair.
|
|
166
|
+
{
|
|
167
|
+
s: '#KEY #CL',
|
|
168
|
+
p: 'val',
|
|
169
|
+
u: { pair: true },
|
|
170
|
+
a: '@pairkey',
|
|
171
|
+
g: 'map,pair,key,json',
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
close: [
|
|
175
|
+
// Comma means a new pair at same pair-key level.
|
|
176
|
+
{ s: '#CA', r: 'pair', g: 'map,pair,json' },
|
|
177
|
+
// End of map.
|
|
178
|
+
{ s: '#CB', b: 1, g: 'map,pair,json' },
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
// push onto node
|
|
182
|
+
elem: {
|
|
183
|
+
open: [
|
|
184
|
+
// List elements are values.
|
|
185
|
+
{ p: 'val', g: 'list,elem,val,json' },
|
|
186
|
+
],
|
|
187
|
+
close: [
|
|
188
|
+
// Next element.
|
|
189
|
+
{ s: '#CA', r: 'elem', g: 'list,elem,json' },
|
|
190
|
+
// End of list.
|
|
191
|
+
{ s: '#CS', b: 1, g: 'list,elem,json' },
|
|
192
|
+
],
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
const json = function json(tn, _options) {
|
|
198
|
+
tn.options(JSON_OPTIONS);
|
|
199
|
+
registerJsonGrammar(tn);
|
|
200
|
+
};
|
|
201
|
+
exports.json = json;
|
|
202
|
+
//# sourceMappingURL=json-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-plugin.js","sourceRoot":"","sources":["../test/json-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../test/json-plugin.ts"],"version":"6.0.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tabnas/parser",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"main": "dist/tabnas.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/tabnas.d.ts",
|
|
@@ -37,8 +37,9 @@
|
|
|
37
37
|
},
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"files": [
|
|
40
|
+
"LICENSE",
|
|
40
41
|
"dist",
|
|
41
|
-
"
|
|
42
|
+
"dist-test"
|
|
42
43
|
],
|
|
43
44
|
"exports": {
|
|
44
45
|
".": "./dist/tabnas.js",
|
|
@@ -48,8 +49,8 @@
|
|
|
48
49
|
"./builtins": "./dist/builtins.js"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
|
-
"@tabnas/debug": "
|
|
52
|
-
"@tabnas/railroad": "
|
|
52
|
+
"@tabnas/debug": "*",
|
|
53
|
+
"@tabnas/railroad": "*",
|
|
53
54
|
"@types/node": "25.6.0",
|
|
54
55
|
"typescript": "6.0.3"
|
|
55
56
|
},
|