@faubulous/mentor-rdf-serializers 1.0.0
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.
- package/README.md +582 -0
- package/dist/base-serializer.d.ts +63 -0
- package/dist/base-serializer.d.ts.map +1 -0
- package/dist/base-serializer.js +144 -0
- package/dist/base-serializer.js.map +1 -0
- package/dist/base-token-formatter.d.ts +225 -0
- package/dist/base-token-formatter.d.ts.map +1 -0
- package/dist/base-token-formatter.js +521 -0
- package/dist/base-token-formatter.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonld/serializer.d.ts +99 -0
- package/dist/jsonld/serializer.d.ts.map +1 -0
- package/dist/jsonld/serializer.js +282 -0
- package/dist/jsonld/serializer.js.map +1 -0
- package/dist/n3/formatter.d.ts +105 -0
- package/dist/n3/formatter.d.ts.map +1 -0
- package/dist/n3/formatter.js +444 -0
- package/dist/n3/formatter.js.map +1 -0
- package/dist/n3/serializer.d.ts +103 -0
- package/dist/n3/serializer.d.ts.map +1 -0
- package/dist/n3/serializer.js +134 -0
- package/dist/n3/serializer.js.map +1 -0
- package/dist/nquads/formatter.d.ts +44 -0
- package/dist/nquads/formatter.d.ts.map +1 -0
- package/dist/nquads/formatter.js +116 -0
- package/dist/nquads/formatter.js.map +1 -0
- package/dist/nquads/serializer.d.ts +38 -0
- package/dist/nquads/serializer.d.ts.map +1 -0
- package/dist/nquads/serializer.js +70 -0
- package/dist/nquads/serializer.js.map +1 -0
- package/dist/ntriples/formatter.d.ts +44 -0
- package/dist/ntriples/formatter.d.ts.map +1 -0
- package/dist/ntriples/formatter.js +116 -0
- package/dist/ntriples/formatter.js.map +1 -0
- package/dist/ntriples/serializer.d.ts +38 -0
- package/dist/ntriples/serializer.d.ts.map +1 -0
- package/dist/ntriples/serializer.js +79 -0
- package/dist/ntriples/serializer.js.map +1 -0
- package/dist/sorting/index.d.ts +5 -0
- package/dist/sorting/index.d.ts.map +1 -0
- package/dist/sorting/index.js +5 -0
- package/dist/sorting/index.js.map +1 -0
- package/dist/sorting/strategies.d.ts +46 -0
- package/dist/sorting/strategies.d.ts.map +1 -0
- package/dist/sorting/strategies.js +259 -0
- package/dist/sorting/strategies.js.map +1 -0
- package/dist/sparql/formatter.d.ts +103 -0
- package/dist/sparql/formatter.d.ts.map +1 -0
- package/dist/sparql/formatter.js +764 -0
- package/dist/sparql/formatter.js.map +1 -0
- package/dist/token-serializer.d.ts +96 -0
- package/dist/token-serializer.d.ts.map +1 -0
- package/dist/token-serializer.js +456 -0
- package/dist/token-serializer.js.map +1 -0
- package/dist/trig/formatter.d.ts +99 -0
- package/dist/trig/formatter.d.ts.map +1 -0
- package/dist/trig/formatter.js +418 -0
- package/dist/trig/formatter.js.map +1 -0
- package/dist/trig/serializer.d.ts +39 -0
- package/dist/trig/serializer.d.ts.map +1 -0
- package/dist/trig/serializer.js +170 -0
- package/dist/trig/serializer.js.map +1 -0
- package/dist/turtle/formatter.d.ts +56 -0
- package/dist/turtle/formatter.d.ts.map +1 -0
- package/dist/turtle/formatter.js +325 -0
- package/dist/turtle/formatter.js.map +1 -0
- package/dist/turtle/serializer.d.ts +87 -0
- package/dist/turtle/serializer.d.ts.map +1 -0
- package/dist/turtle/serializer.js +343 -0
- package/dist/turtle/serializer.js.map +1 -0
- package/dist/types.d.ts +323 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +14 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +157 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +446 -0
- package/dist/utils.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
import { RdfToken } from '@faubulous/mentor-rdf-parsers';
|
|
2
|
+
import { mergeOptions } from './utils.js';
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Token Annotator (Pass 1)
|
|
5
|
+
// ============================================================================
|
|
6
|
+
/**
|
|
7
|
+
* Annotates a token array with source-layout metadata.
|
|
8
|
+
*
|
|
9
|
+
* This is the "analysis pass" that records where the source had newlines
|
|
10
|
+
* and blank lines. The emit pass can then decide whether to honour them.
|
|
11
|
+
*
|
|
12
|
+
* @param tokens The main token stream (no WS / comment groups).
|
|
13
|
+
* @param comments Comment tokens extracted from lexer groups.
|
|
14
|
+
* @returns An array of annotated tokens (comments merged in order) with
|
|
15
|
+
* annotations describing source-layout between adjacent tokens.
|
|
16
|
+
*/
|
|
17
|
+
export function annotateTokens(tokens, comments = []) {
|
|
18
|
+
// Merge tokens and comments in source order.
|
|
19
|
+
const all = [
|
|
20
|
+
...tokens.map(t => ({ token: t, isComment: false })),
|
|
21
|
+
...comments.map(t => ({ token: t, isComment: true })),
|
|
22
|
+
].sort((a, b) => (a.token.startOffset ?? 0) - (b.token.startOffset ?? 0));
|
|
23
|
+
const result = [];
|
|
24
|
+
let lastNonWs = null;
|
|
25
|
+
for (const { token } of all) {
|
|
26
|
+
// Skip pure whitespace tokens.
|
|
27
|
+
if (token.tokenType === RdfToken.WS) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
let sourceLineGap = 0;
|
|
31
|
+
if (lastNonWs && token.startLine !== undefined && lastNonWs.endLine !== undefined) {
|
|
32
|
+
sourceLineGap = token.startLine - lastNonWs.endLine;
|
|
33
|
+
}
|
|
34
|
+
result.push({
|
|
35
|
+
token,
|
|
36
|
+
annotation: {
|
|
37
|
+
sourceNewlineBefore: sourceLineGap >= 1,
|
|
38
|
+
sourceBlankLineBefore: sourceLineGap > 1,
|
|
39
|
+
sourceLineGap,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
lastNonWs = token;
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// BaseTokenFormatter
|
|
48
|
+
// ============================================================================
|
|
49
|
+
/**
|
|
50
|
+
* Abstract base class for all token-based RDF/SPARQL formatters.
|
|
51
|
+
*
|
|
52
|
+
* Provides:
|
|
53
|
+
* - Two-pass architecture: annotateTokens (analysis) + emit (subclass).
|
|
54
|
+
* - A unified scope stack for { }, [ ], ( ).
|
|
55
|
+
* - Output building helpers (addPart, getIndent, line length tracking).
|
|
56
|
+
* - Shared handlers for brackets, punctuation, comments, spacing.
|
|
57
|
+
* - Source newline / blank line preservation helpers.
|
|
58
|
+
*
|
|
59
|
+
* Subclasses override hooks (e.g. handleOpenBrace, handleMajorClause) to add
|
|
60
|
+
* syntax-specific behaviour.
|
|
61
|
+
*/
|
|
62
|
+
export class BaseTokenFormatter {
|
|
63
|
+
/**
|
|
64
|
+
* Format a token's image (e.g. keyword casing).
|
|
65
|
+
* Default: return unchanged.
|
|
66
|
+
*/
|
|
67
|
+
formatTokenValue(token, _opts) {
|
|
68
|
+
return token.image;
|
|
69
|
+
}
|
|
70
|
+
// ════════════════════════════════════════════════════════════════
|
|
71
|
+
// Token metadata helpers (use chevrotain TokenMetadata)
|
|
72
|
+
// ════════════════════════════════════════════════════════════════
|
|
73
|
+
isKeyword(token) {
|
|
74
|
+
return token.tokenType?.isKeyword === true;
|
|
75
|
+
}
|
|
76
|
+
isLowercaseOnly(token) {
|
|
77
|
+
return token.tokenType?.isLowercaseOnly === true;
|
|
78
|
+
}
|
|
79
|
+
isTermToken(token) {
|
|
80
|
+
return token.tokenType?.isTerm === true;
|
|
81
|
+
}
|
|
82
|
+
isFunctionKeyword(token) {
|
|
83
|
+
return token.tokenType?.isFunction === true;
|
|
84
|
+
}
|
|
85
|
+
isMajorClauseKeyword(token) {
|
|
86
|
+
return token.tokenType?.isMajorClause === true;
|
|
87
|
+
}
|
|
88
|
+
isNewlineKeyword(token) {
|
|
89
|
+
return token.tokenType?.isNewlineKeyword === true;
|
|
90
|
+
}
|
|
91
|
+
isOpeningBracket(token) {
|
|
92
|
+
return token.tokenType === RdfToken.LBRACKET ||
|
|
93
|
+
token.tokenType === RdfToken.LPARENT ||
|
|
94
|
+
token.tokenType === RdfToken.OPEN_ANNOTATION ||
|
|
95
|
+
token.tokenType === RdfToken.OPEN_REIFIED_TRIPLE ||
|
|
96
|
+
token.tokenType === RdfToken.OPEN_TRIPLE_TERM;
|
|
97
|
+
}
|
|
98
|
+
isClosingBracket(token) {
|
|
99
|
+
return token.tokenType === RdfToken.RBRACKET ||
|
|
100
|
+
token.tokenType === RdfToken.RPARENT ||
|
|
101
|
+
token.tokenType === RdfToken.CLOSE_ANNOTATION ||
|
|
102
|
+
token.tokenType === RdfToken.CLOSE_REIFIED_TRIPLE ||
|
|
103
|
+
token.tokenType === RdfToken.CLOSE_TRIPLE_TERM;
|
|
104
|
+
}
|
|
105
|
+
// ════════════════════════════════════════════════════════════════
|
|
106
|
+
// Scope stack helpers
|
|
107
|
+
// ════════════════════════════════════════════════════════════════
|
|
108
|
+
/** Push a new scope. */
|
|
109
|
+
pushScope(ctx, type, isInline, isMultiLine) {
|
|
110
|
+
ctx.scopeStack.push({
|
|
111
|
+
type,
|
|
112
|
+
isInline,
|
|
113
|
+
isMultiLine,
|
|
114
|
+
indentLevel: ctx.indentLevel,
|
|
115
|
+
});
|
|
116
|
+
ctx.indentLevel++;
|
|
117
|
+
}
|
|
118
|
+
/** Pop the current scope. Returns it, or undefined if the stack is empty. */
|
|
119
|
+
popScope(ctx) {
|
|
120
|
+
const scope = ctx.scopeStack.pop();
|
|
121
|
+
if (scope) {
|
|
122
|
+
ctx.indentLevel = scope.indentLevel;
|
|
123
|
+
}
|
|
124
|
+
return scope;
|
|
125
|
+
}
|
|
126
|
+
/** The current innermost scope, or undefined. */
|
|
127
|
+
currentScope(ctx) {
|
|
128
|
+
return ctx.scopeStack[ctx.scopeStack.length - 1];
|
|
129
|
+
}
|
|
130
|
+
/** Whether we are inside a bracket scope (blank-node property list). */
|
|
131
|
+
inBracketScope(ctx) {
|
|
132
|
+
return ctx.scopeStack.some(s => s.type === 'bracket');
|
|
133
|
+
}
|
|
134
|
+
// ════════════════════════════════════════════════════════════════
|
|
135
|
+
// Output helpers
|
|
136
|
+
// ════════════════════════════════════════════════════════════════
|
|
137
|
+
/** Append text to the output and track line length. */
|
|
138
|
+
addPart(ctx, text, lineEnd, forceNewline = false) {
|
|
139
|
+
if (forceNewline || text === lineEnd || text.includes(lineEnd)) {
|
|
140
|
+
ctx.parts.push(text);
|
|
141
|
+
const lines = text.split(lineEnd);
|
|
142
|
+
ctx.currentLineLength = lines[lines.length - 1].length;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
ctx.parts.push(text);
|
|
146
|
+
ctx.currentLineLength += text.length;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/** Get indentation string for a level. */
|
|
150
|
+
getIndent(level, indent) {
|
|
151
|
+
return indent.repeat(level);
|
|
152
|
+
}
|
|
153
|
+
/** Check if a wrap is needed. */
|
|
154
|
+
shouldWrap(ctx, nextLength, maxLineWidth) {
|
|
155
|
+
return maxLineWidth > 0 && ctx.currentLineLength + nextLength > maxLineWidth;
|
|
156
|
+
}
|
|
157
|
+
// ════════════════════════════════════════════════════════════════
|
|
158
|
+
// Source-layout preservation helpers
|
|
159
|
+
// ════════════════════════════════════════════════════════════════
|
|
160
|
+
/**
|
|
161
|
+
* Apply the source-layout annotation to the context flags.
|
|
162
|
+
*
|
|
163
|
+
* Call this early in the per-token loop, before any formatting decisions.
|
|
164
|
+
* It sets `needsNewline`, `needsBlankLine`, and `sourceNewline` based on
|
|
165
|
+
* what the source had, but only if the formatter hasn't already decided
|
|
166
|
+
* on something stronger.
|
|
167
|
+
*/
|
|
168
|
+
applySourceLayout(ctx, ann) {
|
|
169
|
+
if (ann.sourceBlankLineBefore) {
|
|
170
|
+
ctx.needsBlankLine = true;
|
|
171
|
+
ctx.needsNewline = true;
|
|
172
|
+
ctx.sourceNewline = true;
|
|
173
|
+
}
|
|
174
|
+
else if (ann.sourceNewlineBefore && !ctx.lastWasNewline) {
|
|
175
|
+
ctx.needsNewline = true;
|
|
176
|
+
ctx.sourceNewline = true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// ════════════════════════════════════════════════════════════════
|
|
180
|
+
// Inline statement detection
|
|
181
|
+
// ════════════════════════════════════════════════════════════════
|
|
182
|
+
/**
|
|
183
|
+
* Scans forward from `startIndex` to the statement-terminating period
|
|
184
|
+
* (at nesting depth 0) and determines whether the source had the
|
|
185
|
+
* entire statement on a single line.
|
|
186
|
+
*
|
|
187
|
+
* @returns The approximate inline character-length of the statement,
|
|
188
|
+
* or `-1` if the source contained newlines within the statement
|
|
189
|
+
* (meaning the author intended multi-line layout).
|
|
190
|
+
*
|
|
191
|
+
* Nested brackets `[]` and parentheses `()` are traversed but their
|
|
192
|
+
* tokens are counted towards the total length. Comments force multi-line.
|
|
193
|
+
*/
|
|
194
|
+
calculateStatementLength(tokens, startIndex) {
|
|
195
|
+
let length = 0;
|
|
196
|
+
let depth = 0;
|
|
197
|
+
let lastEndLine;
|
|
198
|
+
let count = 0;
|
|
199
|
+
for (let i = startIndex; i < tokens.length; i++) {
|
|
200
|
+
const t = tokens[i];
|
|
201
|
+
// Skip whitespace tokens.
|
|
202
|
+
if (t.tokenType === RdfToken.WS)
|
|
203
|
+
continue;
|
|
204
|
+
// A comment anywhere in the statement forces multi-line.
|
|
205
|
+
if (t.tokenType === RdfToken.COMMENT)
|
|
206
|
+
return -1;
|
|
207
|
+
// Check whether a closing delimiter closes an *enclosing* scope
|
|
208
|
+
// (i.e. we started inside a bracket/paren/curly block).
|
|
209
|
+
// Stop the scan without including the closer in the newline check.
|
|
210
|
+
const isCloser = t.tokenType === RdfToken.RBRACKET ||
|
|
211
|
+
t.tokenType === RdfToken.RPARENT ||
|
|
212
|
+
t.tokenType === RdfToken.RCURLY;
|
|
213
|
+
if (isCloser) {
|
|
214
|
+
depth--;
|
|
215
|
+
if (depth < 0) {
|
|
216
|
+
// The closer belongs to the enclosing scope — return
|
|
217
|
+
// the statement length accumulated so far.
|
|
218
|
+
return length + Math.max(0, count - 1);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// If the source had a newline between consecutive non-WS tokens
|
|
222
|
+
// the author explicitly broke the statement → multi-line.
|
|
223
|
+
if (lastEndLine !== undefined && t.startLine !== undefined) {
|
|
224
|
+
if (t.startLine > lastEndLine)
|
|
225
|
+
return -1;
|
|
226
|
+
}
|
|
227
|
+
// Track opening delimiters.
|
|
228
|
+
if (t.tokenType === RdfToken.LBRACKET || t.tokenType === RdfToken.LPARENT ||
|
|
229
|
+
t.tokenType === RdfToken.LCURLY) {
|
|
230
|
+
depth++;
|
|
231
|
+
}
|
|
232
|
+
// Accumulate length.
|
|
233
|
+
length += t.image.length;
|
|
234
|
+
count++;
|
|
235
|
+
lastEndLine = t.endLine;
|
|
236
|
+
// A period at the outermost level terminates the statement.
|
|
237
|
+
if (t.tokenType === RdfToken.PERIOD && depth <= 0) {
|
|
238
|
+
// Add approximate inter-token spaces (count - 1),
|
|
239
|
+
// then subtract 1 for the period which has no leading space.
|
|
240
|
+
return length + Math.max(0, count - 2);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// No period found (e.g. inside a WHERE block in SPARQL).
|
|
244
|
+
// Return the cumulative length so far.
|
|
245
|
+
return length + Math.max(0, count - 1);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Evaluates whether the current statement (starting at `startIndex`)
|
|
249
|
+
* should be rendered inline, and sets `ctx.inlineStatement` accordingly.
|
|
250
|
+
*
|
|
251
|
+
* Call this when a subject is detected (triplePosition === 0).
|
|
252
|
+
*
|
|
253
|
+
* @param ctx The formatting context.
|
|
254
|
+
* @param tokens The full token stream.
|
|
255
|
+
* @param startIndex Index of the subject token.
|
|
256
|
+
* @param indent The indent string for one level.
|
|
257
|
+
* @param maxLineWidth The configured maximum line width (0 = no limit).
|
|
258
|
+
*/
|
|
259
|
+
detectInlineStatement(ctx, tokens, startIndex, indent, maxLineWidth) {
|
|
260
|
+
const stmtLen = this.calculateStatementLength(tokens, startIndex);
|
|
261
|
+
if (stmtLen < 0) {
|
|
262
|
+
// Source had newlines → force multi-line.
|
|
263
|
+
ctx.inlineStatement = false;
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (maxLineWidth <= 0) {
|
|
267
|
+
// No width limit – keep inline since source was inline.
|
|
268
|
+
ctx.inlineStatement = true;
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
// Account for the current indent.
|
|
272
|
+
const indentWidth = ctx.indentLevel * indent.length;
|
|
273
|
+
ctx.inlineStatement = indentWidth + stmtLen <= maxLineWidth;
|
|
274
|
+
}
|
|
275
|
+
// ════════════════════════════════════════════════════════════════
|
|
276
|
+
// Shared token handlers
|
|
277
|
+
// ════════════════════════════════════════════════════════════════
|
|
278
|
+
/**
|
|
279
|
+
* Handles an opening square bracket `[` (blank-node property list).
|
|
280
|
+
*
|
|
281
|
+
* Pushes a 'bracket' scope, increments indent.
|
|
282
|
+
*/
|
|
283
|
+
handleOpenBracket(ctx, token, lineEnd, indent, prettyPrint) {
|
|
284
|
+
if (ctx.needsNewline) {
|
|
285
|
+
this.addPart(ctx, lineEnd + this.getIndent(ctx.indentLevel, indent), lineEnd, true);
|
|
286
|
+
ctx.lastWasNewline = true;
|
|
287
|
+
ctx.needsNewline = false;
|
|
288
|
+
}
|
|
289
|
+
else if (ctx.needsSpace && ctx.parts.length > 0) {
|
|
290
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
291
|
+
}
|
|
292
|
+
this.addPart(ctx, token.image, lineEnd);
|
|
293
|
+
this.pushScope(ctx, 'bracket', false, false);
|
|
294
|
+
ctx.needsNewline = prettyPrint;
|
|
295
|
+
ctx.needsSpace = false;
|
|
296
|
+
ctx.triplePosition = 0;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Handles a closing square bracket `]`.
|
|
300
|
+
*
|
|
301
|
+
* Pops the 'bracket' scope and places `]` on its own line at the outer indent.
|
|
302
|
+
*/
|
|
303
|
+
handleCloseBracket(ctx, token, lineEnd, indent, prettyPrint) {
|
|
304
|
+
// Pop any trailing newline+indent that a semicolon may have emitted.
|
|
305
|
+
if (ctx.lastWasNewline && ctx.parts.length > 0) {
|
|
306
|
+
const last = ctx.parts[ctx.parts.length - 1];
|
|
307
|
+
if (last.includes(lineEnd) || /^\s+$/.test(last)) {
|
|
308
|
+
ctx.parts.pop();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
this.popScope(ctx);
|
|
312
|
+
if (prettyPrint) {
|
|
313
|
+
this.addPart(ctx, lineEnd + this.getIndent(ctx.indentLevel, indent), lineEnd, true);
|
|
314
|
+
}
|
|
315
|
+
this.addPart(ctx, token.image, lineEnd);
|
|
316
|
+
ctx.lastWasNewline = false;
|
|
317
|
+
ctx.needsSpace = true;
|
|
318
|
+
ctx.needsNewline = false;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Handles a semicolon `;` (predicate-object list separator).
|
|
322
|
+
*
|
|
323
|
+
* Inside bracket scopes: continues at the same indent.
|
|
324
|
+
* Outside: adds one extra indent for predicate continuations.
|
|
325
|
+
*/
|
|
326
|
+
handleSemicolon(ctx, lineEnd, indent, prettyPrint, spaceBeforePunctuation) {
|
|
327
|
+
if (spaceBeforePunctuation && ctx.parts.length > 0) {
|
|
328
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
329
|
+
}
|
|
330
|
+
this.addPart(ctx, ';', lineEnd);
|
|
331
|
+
if (prettyPrint && ctx.indentLevel > 0) {
|
|
332
|
+
const extra = this.inBracketScope(ctx) ? '' : indent;
|
|
333
|
+
this.addPart(ctx, lineEnd + this.getIndent(ctx.indentLevel, indent) + extra, lineEnd, true);
|
|
334
|
+
ctx.lastWasNewline = true;
|
|
335
|
+
ctx.needsNewline = false;
|
|
336
|
+
ctx.needsSpace = false;
|
|
337
|
+
}
|
|
338
|
+
else if (prettyPrint) {
|
|
339
|
+
this.addPart(ctx, lineEnd + indent, lineEnd, true);
|
|
340
|
+
ctx.lastWasNewline = true;
|
|
341
|
+
ctx.needsNewline = false;
|
|
342
|
+
ctx.needsSpace = false;
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
ctx.needsSpace = true;
|
|
346
|
+
}
|
|
347
|
+
ctx.triplePosition = 1;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Handles a period `.` (statement terminator).
|
|
351
|
+
*/
|
|
352
|
+
handlePeriod(ctx, lineEnd, prettyPrint, spaceBeforePunctuation) {
|
|
353
|
+
if (spaceBeforePunctuation && !ctx.inPrefix && ctx.parts.length > 0) {
|
|
354
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
355
|
+
}
|
|
356
|
+
this.addPart(ctx, '.', lineEnd);
|
|
357
|
+
ctx.needsNewline = prettyPrint;
|
|
358
|
+
ctx.needsSpace = true;
|
|
359
|
+
ctx.inPrefix = false;
|
|
360
|
+
ctx.triplePosition = 0;
|
|
361
|
+
ctx.lastSubject = null;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Handles a comma `,` (object-list separator).
|
|
365
|
+
*/
|
|
366
|
+
handleComma(ctx, lineEnd) {
|
|
367
|
+
this.addPart(ctx, ',', lineEnd);
|
|
368
|
+
ctx.needsSpace = true;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Handles a comment token.
|
|
372
|
+
*/
|
|
373
|
+
handleComment(ctx, comment, lineEnd, indent) {
|
|
374
|
+
if (ctx.parts.length > 0) {
|
|
375
|
+
if (ctx.lastNonWsToken && comment.startLine !== undefined &&
|
|
376
|
+
ctx.lastNonWsToken.endLine !== undefined &&
|
|
377
|
+
comment.startLine > ctx.lastNonWsToken.endLine) {
|
|
378
|
+
const lineGap = comment.startLine - ctx.lastNonWsToken.endLine;
|
|
379
|
+
if (lineGap > 1) {
|
|
380
|
+
// Blank line before comment.
|
|
381
|
+
if (!ctx.lastWasNewline) {
|
|
382
|
+
this.addPart(ctx, lineEnd, lineEnd, true);
|
|
383
|
+
}
|
|
384
|
+
this.addPart(ctx, lineEnd, lineEnd, true);
|
|
385
|
+
this.addPart(ctx, this.getIndent(ctx.indentLevel, indent), lineEnd);
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
this.addPart(ctx, lineEnd + this.getIndent(ctx.indentLevel, indent), lineEnd, true);
|
|
389
|
+
}
|
|
390
|
+
ctx.lastWasNewline = true;
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
this.addPart(ctx, comment.image, lineEnd);
|
|
397
|
+
ctx.lastWasNewline = false;
|
|
398
|
+
ctx.needsNewline = true;
|
|
399
|
+
ctx.needsSpace = false;
|
|
400
|
+
ctx.lastWasComment = true;
|
|
401
|
+
ctx.lastNonWsToken = comment;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Handles generic token spacing (newlines and spaces before a token).
|
|
405
|
+
*
|
|
406
|
+
* This is the "default" spacing logic. Subclasses may override or call
|
|
407
|
+
* super for specific token types (e.g. datatype, lang tags, function calls).
|
|
408
|
+
*/
|
|
409
|
+
handleTokenSpacing(ctx, token, lineEnd, indent) {
|
|
410
|
+
const isDatatypeContext = token.tokenType === RdfToken.DCARET ||
|
|
411
|
+
ctx.lastNonWsToken?.tokenType === RdfToken.DCARET;
|
|
412
|
+
const isLangTag = token.tokenType === RdfToken.LANGTAG;
|
|
413
|
+
if (ctx.needsNewline && !isDatatypeContext && !isLangTag) {
|
|
414
|
+
if (!ctx.lastWasNewline) {
|
|
415
|
+
this.addPart(ctx, lineEnd, lineEnd, true);
|
|
416
|
+
}
|
|
417
|
+
if (ctx.needsBlankLine) {
|
|
418
|
+
this.addPart(ctx, lineEnd, lineEnd, true);
|
|
419
|
+
ctx.needsBlankLine = false;
|
|
420
|
+
}
|
|
421
|
+
this.addPart(ctx, this.getIndent(ctx.indentLevel, indent), lineEnd);
|
|
422
|
+
ctx.lastWasNewline = false;
|
|
423
|
+
ctx.needsNewline = false;
|
|
424
|
+
}
|
|
425
|
+
else if (ctx.needsSpace && ctx.parts.length > 0 && !isDatatypeContext && !isLangTag) {
|
|
426
|
+
if (ctx.lastNonWsToken && !this.isOpeningBracket(ctx.lastNonWsToken)) {
|
|
427
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
428
|
+
}
|
|
429
|
+
ctx.lastWasNewline = false;
|
|
430
|
+
}
|
|
431
|
+
else {
|
|
432
|
+
ctx.lastWasNewline = false;
|
|
433
|
+
}
|
|
434
|
+
if (isDatatypeContext || isLangTag) {
|
|
435
|
+
ctx.needsNewline = false;
|
|
436
|
+
ctx.needsBlankLine = false;
|
|
437
|
+
}
|
|
438
|
+
ctx.sourceNewline = false;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Handles prefix/base IRI completion.
|
|
442
|
+
*/
|
|
443
|
+
handlePrefixIri(ctx, value, lineEnd, indent, prettyPrint) {
|
|
444
|
+
if (ctx.needsNewline) {
|
|
445
|
+
this.addPart(ctx, lineEnd + this.getIndent(ctx.indentLevel, indent), lineEnd, true);
|
|
446
|
+
ctx.lastWasNewline = true;
|
|
447
|
+
ctx.needsNewline = false;
|
|
448
|
+
}
|
|
449
|
+
else if (ctx.needsSpace && ctx.parts.length > 0) {
|
|
450
|
+
if (ctx.lastNonWsToken && !this.isOpeningBracket(ctx.lastNonWsToken)) {
|
|
451
|
+
this.addPart(ctx, ' ', lineEnd);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
this.addPart(ctx, value, lineEnd);
|
|
455
|
+
ctx.needsSpace = false;
|
|
456
|
+
ctx.needsNewline = prettyPrint;
|
|
457
|
+
ctx.inPrefix = false;
|
|
458
|
+
}
|
|
459
|
+
// ════════════════════════════════════════════════════════════════
|
|
460
|
+
// Multi-line parenthesis helpers
|
|
461
|
+
// ════════════════════════════════════════════════════════════════
|
|
462
|
+
/**
|
|
463
|
+
* Checks if a parenthesis block (starting at `(` at index) contains
|
|
464
|
+
* source newlines between the open and close parens.
|
|
465
|
+
*/
|
|
466
|
+
isParenBlockMultiLine(tokens, openIndex) {
|
|
467
|
+
const openToken = tokens[openIndex];
|
|
468
|
+
let depth = 1;
|
|
469
|
+
for (let i = openIndex + 1; i < tokens.length; i++) {
|
|
470
|
+
const t = tokens[i];
|
|
471
|
+
if (t.tokenType === RdfToken.WS)
|
|
472
|
+
continue;
|
|
473
|
+
if (t.tokenType === RdfToken.LPARENT)
|
|
474
|
+
depth++;
|
|
475
|
+
else if (t.tokenType === RdfToken.RPARENT) {
|
|
476
|
+
depth--;
|
|
477
|
+
if (depth === 0) {
|
|
478
|
+
if (openToken.startLine !== undefined && t.startLine !== undefined) {
|
|
479
|
+
return t.startLine > openToken.startLine;
|
|
480
|
+
}
|
|
481
|
+
return false;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
return false;
|
|
486
|
+
}
|
|
487
|
+
// ════════════════════════════════════════════════════════════════
|
|
488
|
+
// Utility: default base context factory
|
|
489
|
+
// ════════════════════════════════════════════════════════════════
|
|
490
|
+
/**
|
|
491
|
+
* Returns a base context with all shared fields initialised.
|
|
492
|
+
* Subclasses call this and spread into their own context literal.
|
|
493
|
+
*/
|
|
494
|
+
createBaseContext() {
|
|
495
|
+
return {
|
|
496
|
+
parts: [],
|
|
497
|
+
indentLevel: 0,
|
|
498
|
+
currentLineLength: 0,
|
|
499
|
+
scopeStack: [],
|
|
500
|
+
needsNewline: false,
|
|
501
|
+
needsBlankLine: false,
|
|
502
|
+
needsSpace: false,
|
|
503
|
+
sourceNewline: false,
|
|
504
|
+
lastToken: null,
|
|
505
|
+
lastNonWsToken: null,
|
|
506
|
+
lastWasNewline: false,
|
|
507
|
+
lastWasComment: false,
|
|
508
|
+
inPrefix: false,
|
|
509
|
+
triplePosition: 0,
|
|
510
|
+
lastSubject: null,
|
|
511
|
+
inlineStatement: false,
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Helper: merges base options.
|
|
516
|
+
*/
|
|
517
|
+
mergeBaseOptions(options) {
|
|
518
|
+
return mergeOptions(options);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
//# sourceMappingURL=base-token-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-token-formatter.js","sourceRoot":"","sources":["../src/base-token-formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type { ISerializer, ITokenSerializer, IRdfFormatter, ISparqlFormatter, Rdf12Quad, Rdf12Term, Reifier, TripleTerm, SerializerOptions, TokenSerializerOptions, SerializationResult, SourceMapEntry, QuadComparator, SortingStrategy, PriorityStrategyConfig, SortOption, BlankNodeStyle, ObjectListStyle, PredicateListStyle } from './types.js';
|
|
2
|
+
export { RdfSyntax } from './types.js';
|
|
3
|
+
export { escapeIri, escapeString, escapeLocalName, findPrefix, isValidLocalName, isTripleTerm, isReifier, hasAnnotations, hasReifier, needsLongString, isInteger, isDecimal, isDouble, groupQuadsBySubject, groupQuadsBySubjectPredicate, groupQuadsByGraph, termToString, sortQuads, parseLanguageTag, formatLanguageTag, resetBlankNodeCounter, generateBlankNodeId, mergeOptions, RDF_NAMESPACE, XSD_NAMESPACE, RDF_TYPE, XSD_STRING, XSD_INTEGER, XSD_DECIMAL, XSD_DOUBLE, XSD_BOOLEAN, DEFAULT_OPTIONS } from './utils.js';
|
|
4
|
+
export { BaseSerializer } from './base-serializer.js';
|
|
5
|
+
export { BaseTokenFormatter, annotateTokens, type TokenAnnotation, type AnnotatedToken, type Scope, type BaseFormatterContext, type BaseFormatterOptions, } from './base-token-formatter.js';
|
|
6
|
+
export { NTriplesSerializer } from './ntriples/serializer.js';
|
|
7
|
+
export { NQuadsSerializer } from './nquads/serializer.js';
|
|
8
|
+
export { TurtleSerializer } from './turtle/serializer.js';
|
|
9
|
+
export { TrigSerializer } from './trig/serializer.js';
|
|
10
|
+
export { N3Serializer, type N3SerializerOptions, type N3Formula, type N3QuickVariable, isN3Formula, isN3QuickVariable } from './n3/serializer.js';
|
|
11
|
+
export { JsonLdSerializer, type JsonLdSerializerOptions } from './jsonld/serializer.js';
|
|
12
|
+
export { SparqlFormatter, type SparqlFormatterOptions } from './sparql/formatter.js';
|
|
13
|
+
export { TurtleFormatter, type TurtleFormatterOptions } from './turtle/formatter.js';
|
|
14
|
+
export { NTriplesFormatter } from './ntriples/formatter.js';
|
|
15
|
+
export { NQuadsFormatter } from './nquads/formatter.js';
|
|
16
|
+
export { TrigFormatter, type TrigFormatterOptions } from './trig/formatter.js';
|
|
17
|
+
export { N3Formatter, type N3FormatterOptions } from './n3/formatter.js';
|
|
18
|
+
export { TokenSerializer, type Token, getBlankNodeIdFromToken, isBlankNodeToken, getTokenPosition } from './token-serializer.js';
|
|
19
|
+
export { alphabeticalStrategy, createByTypeStrategy, createSemanticStrategy, createPriorityStrategy, applySortingStrategy } from './sorting/index.js';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACR,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EACH,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,UAAU,EACV,eAAe,EACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACH,kBAAkB,EAClB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC5B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACH,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,WAAW,EACX,iBAAiB,EACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACH,gBAAgB,EAChB,KAAK,uBAAuB,EAC/B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EACH,aAAa,EACb,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACH,WAAW,EACX,KAAK,kBAAkB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,eAAe,EACf,KAAK,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export { RdfSyntax } from './types.js';
|
|
2
|
+
// Utilities
|
|
3
|
+
export { escapeIri, escapeString, escapeLocalName, findPrefix, isValidLocalName, isTripleTerm, isReifier, hasAnnotations, hasReifier, needsLongString, isInteger, isDecimal, isDouble, groupQuadsBySubject, groupQuadsBySubjectPredicate, groupQuadsByGraph, termToString, sortQuads, parseLanguageTag, formatLanguageTag, resetBlankNodeCounter, generateBlankNodeId, mergeOptions, RDF_NAMESPACE, XSD_NAMESPACE, RDF_TYPE, XSD_STRING, XSD_INTEGER, XSD_DECIMAL, XSD_DOUBLE, XSD_BOOLEAN, DEFAULT_OPTIONS } from './utils.js';
|
|
4
|
+
// Base serializer
|
|
5
|
+
export { BaseSerializer } from './base-serializer.js';
|
|
6
|
+
// Base token formatter
|
|
7
|
+
export { BaseTokenFormatter, annotateTokens, } from './base-token-formatter.js';
|
|
8
|
+
// N-Triples serializer
|
|
9
|
+
export { NTriplesSerializer } from './ntriples/serializer.js';
|
|
10
|
+
// N-Quads serializer
|
|
11
|
+
export { NQuadsSerializer } from './nquads/serializer.js';
|
|
12
|
+
// Turtle serializer
|
|
13
|
+
export { TurtleSerializer } from './turtle/serializer.js';
|
|
14
|
+
// TriG serializer
|
|
15
|
+
export { TrigSerializer } from './trig/serializer.js';
|
|
16
|
+
// N3 serializer
|
|
17
|
+
export { N3Serializer, isN3Formula, isN3QuickVariable } from './n3/serializer.js';
|
|
18
|
+
// JSON-LD serializer
|
|
19
|
+
export { JsonLdSerializer } from './jsonld/serializer.js';
|
|
20
|
+
// SPARQL formatter
|
|
21
|
+
export { SparqlFormatter } from './sparql/formatter.js';
|
|
22
|
+
// Turtle formatter
|
|
23
|
+
export { TurtleFormatter } from './turtle/formatter.js';
|
|
24
|
+
// N-Triples formatter
|
|
25
|
+
export { NTriplesFormatter } from './ntriples/formatter.js';
|
|
26
|
+
// N-Quads formatter
|
|
27
|
+
export { NQuadsFormatter } from './nquads/formatter.js';
|
|
28
|
+
// TriG formatter
|
|
29
|
+
export { TrigFormatter } from './trig/formatter.js';
|
|
30
|
+
// N3 formatter
|
|
31
|
+
export { N3Formatter } from './n3/formatter.js';
|
|
32
|
+
// Token-based serialization
|
|
33
|
+
export { TokenSerializer, getBlankNodeIdFromToken, isBlankNodeToken, getTokenPosition } from './token-serializer.js';
|
|
34
|
+
// Sorting strategies
|
|
35
|
+
export { alphabeticalStrategy, createByTypeStrategy, createSemanticStrategy, createPriorityStrategy, applySortingStrategy } from './sorting/index.js';
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,YAAY;AACZ,OAAO,EACH,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,cAAc,EACd,UAAU,EACV,eAAe,EACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EAClB,MAAM,YAAY,CAAC;AAEpB,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,uBAAuB;AACvB,OAAO,EACH,kBAAkB,EAClB,cAAc,GAMjB,MAAM,2BAA2B,CAAC;AAEnC,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,gBAAgB;AAChB,OAAO,EACH,YAAY,EAIZ,WAAW,EACX,iBAAiB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO,EACH,gBAAgB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACH,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACH,eAAe,EAElB,MAAM,uBAAuB,CAAC;AAE/B,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,iBAAiB;AACjB,OAAO,EACH,aAAa,EAEhB,MAAM,qBAAqB,CAAC;AAE7B,eAAe;AACf,OAAO,EACH,WAAW,EAEd,MAAM,mBAAmB,CAAC;AAE3B,4BAA4B;AAC5B,OAAO,EACH,eAAe,EAEf,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,qBAAqB;AACrB,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,oBAAoB,CAAC"}
|