@steedos/odata-v4-parser 2.2.53-beta.3

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/lib/lexer.js ADDED
@@ -0,0 +1,595 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Lexer = exports.LexerToken = exports.Token = exports.LexerTokenType = exports.TokenType = void 0;
4
+ var utils_1 = require("./utils");
5
+ var TokenType;
6
+ (function (TokenType) {
7
+ TokenType["Literal"] = "Literal";
8
+ TokenType["ArrayOrObject"] = "ArrayOrObject";
9
+ TokenType["Array"] = "Array";
10
+ TokenType["Object"] = "Object";
11
+ TokenType["Property"] = "Property";
12
+ TokenType["Annotation"] = "Annotation";
13
+ TokenType["Enum"] = "Enum";
14
+ TokenType["EnumValue"] = "EnumValue";
15
+ TokenType["EnumMemberValue"] = "EnumMemberValue";
16
+ TokenType["Identifier"] = "Identifier";
17
+ TokenType["QualifiedEntityTypeName"] = "QualifiedEntityTypeName";
18
+ TokenType["QualifiedComplexTypeName"] = "QualifiedComplexTypeName";
19
+ TokenType["ODataIdentifier"] = "ODataIdentifier";
20
+ TokenType["Collection"] = "Collection";
21
+ TokenType["NamespacePart"] = "NamespacePart";
22
+ TokenType["EntitySetName"] = "EntitySetName";
23
+ TokenType["SingletonEntity"] = "SingletonEntity";
24
+ TokenType["EntityTypeName"] = "EntityTypeName";
25
+ TokenType["ComplexTypeName"] = "ComplexTypeName";
26
+ TokenType["TypeDefinitionName"] = "TypeDefinitionName";
27
+ TokenType["EnumerationTypeName"] = "EnumerationTypeName";
28
+ TokenType["EnumerationMember"] = "EnumerationMember";
29
+ TokenType["TermName"] = "TermName";
30
+ TokenType["PrimitiveProperty"] = "PrimitiveProperty";
31
+ TokenType["PrimitiveKeyProperty"] = "PrimitiveKeyProperty";
32
+ TokenType["PrimitiveNonKeyProperty"] = "PrimitiveNonKeyProperty";
33
+ TokenType["PrimitiveCollectionProperty"] = "PrimitiveCollectionProperty";
34
+ TokenType["ComplexProperty"] = "ComplexProperty";
35
+ TokenType["ComplexCollectionProperty"] = "ComplexCollectionProperty";
36
+ TokenType["StreamProperty"] = "StreamProperty";
37
+ TokenType["NavigationProperty"] = "NavigationProperty";
38
+ TokenType["EntityNavigationProperty"] = "EntityNavigationProperty";
39
+ TokenType["EntityCollectionNavigationProperty"] = "EntityCollectionNavigationProperty";
40
+ TokenType["Action"] = "Action";
41
+ TokenType["ActionImport"] = "ActionImport";
42
+ TokenType["Function"] = "Function";
43
+ TokenType["EntityFunction"] = "EntityFunction";
44
+ TokenType["EntityCollectionFunction"] = "EntityCollectionFunction";
45
+ TokenType["ComplexFunction"] = "ComplexFunction";
46
+ TokenType["ComplexCollectionFunction"] = "ComplexCollectionFunction";
47
+ TokenType["PrimitiveFunction"] = "PrimitiveFunction";
48
+ TokenType["PrimitiveCollectionFunction"] = "PrimitiveCollectionFunction";
49
+ TokenType["EntityFunctionImport"] = "EntityFunctionImport";
50
+ TokenType["EntityCollectionFunctionImport"] = "EntityCollectionFunctionImport";
51
+ TokenType["ComplexFunctionImport"] = "ComplexFunctionImport";
52
+ TokenType["ComplexCollectionFunctionImport"] = "ComplexCollectionFunctionImport";
53
+ TokenType["PrimitiveFunctionImport"] = "PrimitiveFunctionImport";
54
+ TokenType["PrimitiveCollectionFunctionImport"] = "PrimitiveCollectionFunctionImport";
55
+ TokenType["CommonExpression"] = "CommonExpression";
56
+ TokenType["AndExpression"] = "AndExpression";
57
+ TokenType["OrExpression"] = "OrExpression";
58
+ TokenType["EqualsExpression"] = "EqualsExpression";
59
+ TokenType["NotEqualsExpression"] = "NotEqualsExpression";
60
+ TokenType["LesserThanExpression"] = "LesserThanExpression";
61
+ TokenType["LesserOrEqualsExpression"] = "LesserOrEqualsExpression";
62
+ TokenType["GreaterThanExpression"] = "GreaterThanExpression";
63
+ TokenType["GreaterOrEqualsExpression"] = "GreaterOrEqualsExpression";
64
+ TokenType["HasExpression"] = "HasExpression";
65
+ TokenType["AddExpression"] = "AddExpression";
66
+ TokenType["SubExpression"] = "SubExpression";
67
+ TokenType["MulExpression"] = "MulExpression";
68
+ TokenType["DivExpression"] = "DivExpression";
69
+ TokenType["ModExpression"] = "ModExpression";
70
+ TokenType["NotExpression"] = "NotExpression";
71
+ TokenType["BoolParenExpression"] = "BoolParenExpression";
72
+ TokenType["ParenExpression"] = "ParenExpression";
73
+ TokenType["MethodCallExpression"] = "MethodCallExpression";
74
+ TokenType["IsOfExpression"] = "IsOfExpression";
75
+ TokenType["CastExpression"] = "CastExpression";
76
+ TokenType["NegateExpression"] = "NegateExpression";
77
+ TokenType["FirstMemberExpression"] = "FirstMemberExpression";
78
+ TokenType["MemberExpression"] = "MemberExpression";
79
+ TokenType["PropertyPathExpression"] = "PropertyPathExpression";
80
+ TokenType["ImplicitVariableExpression"] = "ImplicitVariableExpression";
81
+ TokenType["LambdaVariable"] = "LambdaVariable";
82
+ TokenType["LambdaVariableExpression"] = "LambdaVariableExpression";
83
+ TokenType["LambdaPredicateExpression"] = "LambdaPredicateExpression";
84
+ TokenType["AnyExpression"] = "AnyExpression";
85
+ TokenType["AllExpression"] = "AllExpression";
86
+ TokenType["CollectionNavigationExpression"] = "CollectionNavigationExpression";
87
+ TokenType["SimpleKey"] = "SimpleKey";
88
+ TokenType["CompoundKey"] = "CompoundKey";
89
+ TokenType["KeyValuePair"] = "KeyValuePair";
90
+ TokenType["KeyPropertyValue"] = "KeyPropertyValue";
91
+ TokenType["KeyPropertyAlias"] = "KeyPropertyAlias";
92
+ TokenType["SingleNavigationExpression"] = "SingleNavigationExpression";
93
+ TokenType["CollectionPathExpression"] = "CollectionPathExpression";
94
+ TokenType["ComplexPathExpression"] = "ComplexPathExpression";
95
+ TokenType["SinglePathExpression"] = "SinglePathExpression";
96
+ TokenType["FunctionExpression"] = "FunctionExpression";
97
+ TokenType["FunctionExpressionParameters"] = "FunctionExpressionParameters";
98
+ TokenType["FunctionExpressionParameter"] = "FunctionExpressionParameter";
99
+ TokenType["ParameterName"] = "ParameterName";
100
+ TokenType["ParameterAlias"] = "ParameterAlias";
101
+ TokenType["ParameterValue"] = "ParameterValue";
102
+ TokenType["CountExpression"] = "CountExpression";
103
+ TokenType["RefExpression"] = "RefExpression";
104
+ TokenType["ValueExpression"] = "ValueExpression";
105
+ TokenType["RootExpression"] = "RootExpression";
106
+ TokenType["QueryOptions"] = "QueryOptions";
107
+ TokenType["CustomQueryOption"] = "CustomQueryOption";
108
+ TokenType["Expand"] = "Expand";
109
+ TokenType["ExpandItem"] = "ExpandItem";
110
+ TokenType["ExpandPath"] = "ExpandPath";
111
+ TokenType["ExpandCountOption"] = "ExpandCountOption";
112
+ TokenType["ExpandRefOption"] = "ExpandRefOption";
113
+ TokenType["ExpandOption"] = "ExpandOption";
114
+ TokenType["Levels"] = "Levels";
115
+ TokenType["Search"] = "Search";
116
+ TokenType["SearchExpression"] = "SearchExpression";
117
+ TokenType["SearchParenExpression"] = "SearchParenExpression";
118
+ TokenType["SearchNotExpression"] = "SearchNotExpression";
119
+ TokenType["SearchOrExpression"] = "SearchOrExpression";
120
+ TokenType["SearchAndExpression"] = "SearchAndExpression";
121
+ TokenType["SearchTerm"] = "SearchTerm";
122
+ TokenType["SearchPhrase"] = "SearchPhrase";
123
+ TokenType["SearchWord"] = "SearchWord";
124
+ TokenType["Filter"] = "Filter";
125
+ TokenType["OrderBy"] = "OrderBy";
126
+ TokenType["OrderByItem"] = "OrderByItem";
127
+ TokenType["Skip"] = "Skip";
128
+ TokenType["Top"] = "Top";
129
+ TokenType["Format"] = "Format";
130
+ TokenType["InlineCount"] = "InlineCount";
131
+ TokenType["Select"] = "Select";
132
+ TokenType["SelectItem"] = "SelectItem";
133
+ TokenType["SelectPath"] = "SelectPath";
134
+ TokenType["AliasAndValue"] = "AliasAndValue";
135
+ TokenType["SkipToken"] = "SkipToken";
136
+ TokenType["Id"] = "Id";
137
+ TokenType["Crossjoin"] = "Crossjoin";
138
+ TokenType["AllResource"] = "AllResource";
139
+ TokenType["ActionImportCall"] = "ActionImportCall";
140
+ TokenType["FunctionImportCall"] = "FunctionImportCall";
141
+ TokenType["EntityCollectionFunctionImportCall"] = "EntityCollectionFunctionImportCall";
142
+ TokenType["EntityFunctionImportCall"] = "EntityFunctionImportCall";
143
+ TokenType["ComplexCollectionFunctionImportCall"] = "ComplexCollectionFunctionImportCall";
144
+ TokenType["ComplexFunctionImportCall"] = "ComplexFunctionImportCall";
145
+ TokenType["PrimitiveCollectionFunctionImportCall"] = "PrimitiveCollectionFunctionImportCall";
146
+ TokenType["PrimitiveFunctionImportCall"] = "PrimitiveFunctionImportCall";
147
+ TokenType["FunctionParameters"] = "FunctionParameters";
148
+ TokenType["FunctionParameter"] = "FunctionParameter";
149
+ TokenType["ResourcePath"] = "ResourcePath";
150
+ TokenType["CollectionNavigation"] = "CollectionNavigation";
151
+ TokenType["CollectionNavigationPath"] = "CollectionNavigationPath";
152
+ TokenType["SingleNavigation"] = "SingleNavigation";
153
+ TokenType["PropertyPath"] = "PropertyPath";
154
+ TokenType["ComplexPath"] = "ComplexPath";
155
+ TokenType["BoundOperation"] = "BoundOperation";
156
+ TokenType["BoundActionCall"] = "BoundActionCall";
157
+ TokenType["BoundEntityFunctionCall"] = "BoundEntityFunctionCall";
158
+ TokenType["BoundEntityCollectionFunctionCall"] = "BoundEntityCollectionFunctionCall";
159
+ TokenType["BoundComplexFunctionCall"] = "BoundComplexFunctionCall";
160
+ TokenType["BoundComplexCollectionFunctionCall"] = "BoundComplexCollectionFunctionCall";
161
+ TokenType["BoundPrimitiveFunctionCall"] = "BoundPrimitiveFunctionCall";
162
+ TokenType["BoundPrimitiveCollectionFunctionCall"] = "BoundPrimitiveCollectionFunctionCall";
163
+ TokenType["ODataUri"] = "ODataUri";
164
+ TokenType["Batch"] = "Batch";
165
+ TokenType["Entity"] = "Entity";
166
+ TokenType["Metadata"] = "Metadata";
167
+ TokenType["InExpression"] = "InExpression";
168
+ })(TokenType = exports.TokenType || (exports.TokenType = {}));
169
+ exports.LexerTokenType = TokenType;
170
+ var Token = /** @class */ (function () {
171
+ function Token(token) {
172
+ this.position = token.position;
173
+ this.next = token.next;
174
+ this.value = token.value;
175
+ this.type = token.type;
176
+ this.raw = token.raw;
177
+ if (token.metadata)
178
+ this.metadata = token.metadata;
179
+ }
180
+ return Token;
181
+ }());
182
+ exports.Token = Token;
183
+ exports.LexerToken = Token;
184
+ var Lexer;
185
+ (function (Lexer) {
186
+ Lexer.Token = exports.Token;
187
+ Lexer.TokenType = exports.TokenType;
188
+ function tokenize(value, index, next, tokenValue, tokenType, metadataContextContainer) {
189
+ var token = new exports.Token({
190
+ position: index,
191
+ next: next,
192
+ value: tokenValue,
193
+ type: tokenType,
194
+ raw: utils_1.default.stringify(value, index, next)
195
+ });
196
+ if (metadataContextContainer && metadataContextContainer.metadata) {
197
+ token.metadata = metadataContextContainer.metadata;
198
+ delete metadataContextContainer.metadata;
199
+ }
200
+ return token;
201
+ }
202
+ Lexer.tokenize = tokenize;
203
+ function clone(token) {
204
+ return new exports.Token({
205
+ position: token.position,
206
+ next: token.next,
207
+ value: token.value,
208
+ type: token.type,
209
+ raw: token.raw
210
+ });
211
+ }
212
+ Lexer.clone = clone;
213
+ // core definitions
214
+ function ALPHA(value) { return (value >= 0x41 && value <= 0x5a) || (value >= 0x61 && value <= 0x7a) || value >= 0x80; }
215
+ Lexer.ALPHA = ALPHA;
216
+ function DIGIT(value) { return (value >= 0x30 && value <= 0x39); }
217
+ Lexer.DIGIT = DIGIT;
218
+ function HEXDIG(value) { return Lexer.DIGIT(value) || Lexer.AtoF(value); }
219
+ Lexer.HEXDIG = HEXDIG;
220
+ function AtoF(value) { return (value >= 0x41 && value <= 0x46) || (value >= 0x61 && value <= 0x66); }
221
+ Lexer.AtoF = AtoF;
222
+ function DQUOTE(value) { return value === 0x22; }
223
+ Lexer.DQUOTE = DQUOTE;
224
+ function SP(value) { return value === 0x20; }
225
+ Lexer.SP = SP;
226
+ function HTAB(value) { return value === 0x09; }
227
+ Lexer.HTAB = HTAB;
228
+ function VCHAR(value) { return value >= 0x21 && value <= 0x7e; }
229
+ Lexer.VCHAR = VCHAR;
230
+ // punctuation
231
+ function whitespaceLength(value, index) {
232
+ if (utils_1.default.equals(value, index, "%20") || utils_1.default.equals(value, index, "%09"))
233
+ return 3;
234
+ else if (Lexer.SP(value[index]) || Lexer.HTAB(value[index]) || value[index] === 0x20 || value[index] === 0x09)
235
+ return 1;
236
+ }
237
+ Lexer.whitespaceLength = whitespaceLength;
238
+ function OWS(value, index) {
239
+ index = index || 0;
240
+ var inc = Lexer.whitespaceLength(value, index);
241
+ while (inc) {
242
+ index += inc;
243
+ inc = Lexer.whitespaceLength(value, index);
244
+ }
245
+ return index;
246
+ }
247
+ Lexer.OWS = OWS;
248
+ function RWS(value, index) {
249
+ return Lexer.OWS(value, index);
250
+ }
251
+ Lexer.RWS = RWS;
252
+ function BWS(value, index) {
253
+ return Lexer.OWS(value, index);
254
+ }
255
+ Lexer.BWS = BWS;
256
+ function AT(value, index) {
257
+ if (value[index] === 0x40)
258
+ return index + 1;
259
+ else if (utils_1.default.equals(value, index, "%40"))
260
+ return index + 3;
261
+ }
262
+ Lexer.AT = AT;
263
+ function COLON(value, index) {
264
+ if (value[index] === 0x3a)
265
+ return index + 1;
266
+ else if (utils_1.default.equals(value, index, "%3A"))
267
+ return index + 3;
268
+ }
269
+ Lexer.COLON = COLON;
270
+ function COMMA(value, index) {
271
+ if (value[index] === 0x2c)
272
+ return index + 1;
273
+ else if (utils_1.default.equals(value, index, "%2C"))
274
+ return index + 3;
275
+ }
276
+ Lexer.COMMA = COMMA;
277
+ function EQ(value, index) {
278
+ if (value[index] === 0x3d)
279
+ return index + 1;
280
+ }
281
+ Lexer.EQ = EQ;
282
+ function SIGN(value, index) {
283
+ if (value[index] === 0x2b || value[index] === 0x2d)
284
+ return index + 1;
285
+ else if (utils_1.default.equals(value, index, "%2B"))
286
+ return index + 3;
287
+ }
288
+ Lexer.SIGN = SIGN;
289
+ function SEMI(value, index) {
290
+ if (value[index] === 0x3b)
291
+ return index + 1;
292
+ else if (utils_1.default.equals(value, index, "%3B"))
293
+ return index + 3;
294
+ }
295
+ Lexer.SEMI = SEMI;
296
+ function STAR(value, index) {
297
+ if (value[index] === 0x2a)
298
+ return index + 1;
299
+ else if (utils_1.default.equals(value, index, "%2A"))
300
+ return index + 3;
301
+ }
302
+ Lexer.STAR = STAR;
303
+ function SQUOTE(value, index) {
304
+ if (value[index] === 0x27)
305
+ return index + 1;
306
+ else if (utils_1.default.equals(value, index, "%27"))
307
+ return index + 3;
308
+ }
309
+ Lexer.SQUOTE = SQUOTE;
310
+ function OPEN(value, index) {
311
+ if (value[index] === 0x28)
312
+ return index + 1;
313
+ else if (utils_1.default.equals(value, index, "%28"))
314
+ return index + 3;
315
+ }
316
+ Lexer.OPEN = OPEN;
317
+ function CLOSE(value, index) {
318
+ if (value[index] === 0x29)
319
+ return index + 1;
320
+ else if (utils_1.default.equals(value, index, "%29"))
321
+ return index + 3;
322
+ }
323
+ Lexer.CLOSE = CLOSE;
324
+ // unreserved ALPHA / DIGIT / "-" / "." / "_" / "~"
325
+ function unreserved(value) { return Lexer.ALPHA(value) || Lexer.DIGIT(value) || value === 0x2d || value === 0x2e || value === 0x5f || value === 0x7e; }
326
+ Lexer.unreserved = unreserved;
327
+ // other-delims "!" / "(" / ")" / "*" / "+" / "," / ";"
328
+ function otherDelims(value, index) {
329
+ if (value[index] === 0x21 || value[index] === 0x2b)
330
+ return index + 1;
331
+ else
332
+ return Lexer.OPEN(value, index) || Lexer.CLOSE(value, index) || Lexer.STAR(value, index) || Lexer.COMMA(value, index) || Lexer.SEMI(value, index);
333
+ }
334
+ Lexer.otherDelims = otherDelims;
335
+ // sub-delims = "$" / "&" / "'" / "=" / other-delims
336
+ function subDelims(value, index) {
337
+ if (value[index] === 0x24 || value[index] === 0x26)
338
+ return index + 1;
339
+ else
340
+ return Lexer.SQUOTE(value, index) || Lexer.EQ(value, index) || Lexer.otherDelims(value, index);
341
+ }
342
+ Lexer.subDelims = subDelims;
343
+ function pctEncoded(value, index) {
344
+ if (value[index] !== 0x25 || !Lexer.HEXDIG(value[index + 1]) || !Lexer.HEXDIG(value[index + 2]))
345
+ return index;
346
+ return index + 3;
347
+ }
348
+ Lexer.pctEncoded = pctEncoded;
349
+ // pct-encoded-no-SQUOTE = "%" ( "0" / "1" / "3" / "4" / "5" / "6" / "8" / "9" / A-to-F ) HEXDIG
350
+ // / "%" "2" ( "0" / "1" / "2" / "3" / "4" / "5" / "6" / "8" / "9" / A-to-F )
351
+ function pctEncodedNoSQUOTE(value, index) {
352
+ if (utils_1.default.equals(value, index, "%27"))
353
+ return index;
354
+ return Lexer.pctEncoded(value, index);
355
+ }
356
+ Lexer.pctEncodedNoSQUOTE = pctEncodedNoSQUOTE;
357
+ function pctEncodedUnescaped(value, index) {
358
+ if (utils_1.default.equals(value, index, "%22") ||
359
+ utils_1.default.equals(value, index, "%3") ||
360
+ utils_1.default.equals(value, index, "%4") ||
361
+ utils_1.default.equals(value, index, "%5C"))
362
+ return index;
363
+ return Lexer.pctEncoded(value, index);
364
+ }
365
+ Lexer.pctEncodedUnescaped = pctEncodedUnescaped;
366
+ function pchar(value, index) {
367
+ if (Lexer.unreserved(value[index]))
368
+ return index + 1;
369
+ else
370
+ return Lexer.subDelims(value, index) || Lexer.COLON(value, index) || Lexer.AT(value, index) || Lexer.pctEncoded(value, index) || index;
371
+ }
372
+ Lexer.pchar = pchar;
373
+ function pcharNoSQUOTE(value, index) {
374
+ if (Lexer.unreserved(value[index]) || value[index] === 0x24 || value[index] === 0x26)
375
+ return index + 1;
376
+ else
377
+ return Lexer.otherDelims(value, index) || Lexer.EQ(value, index) || Lexer.COLON(value, index) || Lexer.AT(value, index) || Lexer.pctEncodedNoSQUOTE(value, index) || index;
378
+ }
379
+ Lexer.pcharNoSQUOTE = pcharNoSQUOTE;
380
+ function qcharNoAMP(value, index) {
381
+ if (Lexer.unreserved(value[index]) || value[index] === 0x3a || value[index] === 0x40 || value[index] === 0x2f || value[index] === 0x3f || value[index] === 0x24 || value[index] === 0x27 || value[index] === 0x3d)
382
+ return index + 1;
383
+ else
384
+ return Lexer.pctEncoded(value, index) || Lexer.otherDelims(value, index) || index;
385
+ }
386
+ Lexer.qcharNoAMP = qcharNoAMP;
387
+ function qcharNoAMPDQUOTE(value, index) {
388
+ index = Lexer.BWS(value, index);
389
+ if (Lexer.unreserved(value[index]) || value[index] === 0x3a || value[index] === 0x40 || value[index] === 0x2f || value[index] === 0x3f || value[index] === 0x24 || value[index] === 0x27 || value[index] === 0x3d)
390
+ return index + 1;
391
+ else
392
+ return Lexer.otherDelims(value, index) || Lexer.pctEncodedUnescaped(value, index);
393
+ }
394
+ Lexer.qcharNoAMPDQUOTE = qcharNoAMPDQUOTE;
395
+ // export function pchar(value:number):boolean { return unreserved(value) || otherDelims(value) || value == 0x24 || value == 0x26 || EQ(value) || COLON(value) || AT(value); }
396
+ function base64char(value) { return Lexer.ALPHA(value) || Lexer.DIGIT(value) || value === 0x2d || value === 0x5f; }
397
+ Lexer.base64char = base64char;
398
+ function base64b16(value, index) {
399
+ var start = index;
400
+ if (!Lexer.base64char(value[index]) && !Lexer.base64char(value[index + 1]))
401
+ return start;
402
+ index += 2;
403
+ if (!utils_1.default.is(value[index], "AEIMQUYcgkosw048"))
404
+ return start;
405
+ index++;
406
+ if (value[index] === 0x3d)
407
+ index++;
408
+ return index;
409
+ }
410
+ Lexer.base64b16 = base64b16;
411
+ function base64b8(value, index) {
412
+ var start = index;
413
+ if (!Lexer.base64char(value[index]))
414
+ return start;
415
+ index++;
416
+ if (value[index] !== 0x41 || value[index] !== 0x51 || value[index] !== 0x67 || value[index] !== 0x77)
417
+ return start;
418
+ index++;
419
+ if (value[index] === 0x3d && value[index + 1] === 0x3d)
420
+ index += 2;
421
+ return index;
422
+ }
423
+ Lexer.base64b8 = base64b8;
424
+ function nanInfinity(value, index) {
425
+ return utils_1.default.equals(value, index, "NaN") || utils_1.default.equals(value, index, "-INF") || utils_1.default.equals(value, index, "INF");
426
+ }
427
+ Lexer.nanInfinity = nanInfinity;
428
+ function oneToNine(value) { return value !== 0x30 && Lexer.DIGIT(value); }
429
+ Lexer.oneToNine = oneToNine;
430
+ function zeroToFiftyNine(value, index) {
431
+ if (value[index] >= 0x30 && value[index] <= 0x35 && Lexer.DIGIT(value[index + 1]))
432
+ return index + 2;
433
+ return index;
434
+ }
435
+ Lexer.zeroToFiftyNine = zeroToFiftyNine;
436
+ function year(value, index) {
437
+ var start = index;
438
+ var end = index;
439
+ if (value[index] === 0x2d)
440
+ index++;
441
+ if ((value[index] === 0x30 && (end = utils_1.default.required(value, index + 1, Lexer.DIGIT, 3, 3))) ||
442
+ (Lexer.oneToNine(value[index]) && (end = utils_1.default.required(value, index + 1, Lexer.DIGIT, 3))))
443
+ return end;
444
+ return start;
445
+ }
446
+ Lexer.year = year;
447
+ function month(value, index) {
448
+ if ((value[index] === 0x30 && Lexer.oneToNine(value[index + 1])) ||
449
+ (value[index] === 0x31 && value[index + 1] >= 0x30 && value[index + 1] <= 0x32))
450
+ return index + 2;
451
+ return index;
452
+ }
453
+ Lexer.month = month;
454
+ function day(value, index) {
455
+ if ((value[index] === 0x30 && Lexer.oneToNine(value[index + 1])) ||
456
+ ((value[index] === 0x31 || value[index] === 0x32) && Lexer.DIGIT(value[index + 1])) ||
457
+ (value[index] === 0x33 && (value[index + 1] === 0x30 || value[index + 1] === 0x31)))
458
+ return index + 2;
459
+ return index;
460
+ }
461
+ Lexer.day = day;
462
+ function hour(value, index) {
463
+ if (((value[index] === 0x30 || value[index] === 0x31) && Lexer.DIGIT(value[index + 1])) ||
464
+ (value[index] === 0x32 && (value[index + 1] === 0x30 || value[index + 1] === 0x31 || value[index + 1] === 0x32 || value[index + 1] === 0x33)))
465
+ return index + 2;
466
+ return index;
467
+ }
468
+ Lexer.hour = hour;
469
+ function minute(value, index) {
470
+ return Lexer.zeroToFiftyNine(value, index);
471
+ }
472
+ Lexer.minute = minute;
473
+ function second(value, index) {
474
+ return Lexer.zeroToFiftyNine(value, index);
475
+ }
476
+ Lexer.second = second;
477
+ function fractionalSeconds(value, index) {
478
+ return utils_1.default.required(value, index, DIGIT, 1, 12);
479
+ }
480
+ Lexer.fractionalSeconds = fractionalSeconds;
481
+ function geographyPrefix(value, index) {
482
+ return utils_1.default.equals(value, index, "geography") ? index + 9 : index;
483
+ }
484
+ Lexer.geographyPrefix = geographyPrefix;
485
+ function geometryPrefix(value, index) {
486
+ return utils_1.default.equals(value, index, "geometry") ? index + 8 : index;
487
+ }
488
+ Lexer.geometryPrefix = geometryPrefix;
489
+ function identifierLeadingCharacter(value) {
490
+ return Lexer.ALPHA(value) || value === 0x5f;
491
+ }
492
+ Lexer.identifierLeadingCharacter = identifierLeadingCharacter;
493
+ function identifierCharacter(value) {
494
+ return Lexer.identifierLeadingCharacter(value) || Lexer.DIGIT(value);
495
+ }
496
+ Lexer.identifierCharacter = identifierCharacter;
497
+ function beginObject(value, index) {
498
+ var bws = Lexer.BWS(value, index);
499
+ var start = index;
500
+ index = bws;
501
+ if (utils_1.default.equals(value, index, "{"))
502
+ index++;
503
+ else if (utils_1.default.equals(value, index, "%7B"))
504
+ index += 3;
505
+ if (index === bws)
506
+ return start;
507
+ bws = Lexer.BWS(value, index);
508
+ return bws;
509
+ }
510
+ Lexer.beginObject = beginObject;
511
+ function endObject(value, index) {
512
+ var bws = Lexer.BWS(value, index);
513
+ var start = index;
514
+ index = bws;
515
+ if (utils_1.default.equals(value, index, "}"))
516
+ index++;
517
+ else if (utils_1.default.equals(value, index, "%7D"))
518
+ index += 3;
519
+ if (index === bws)
520
+ return start;
521
+ bws = Lexer.BWS(value, index);
522
+ return bws;
523
+ }
524
+ Lexer.endObject = endObject;
525
+ function beginArray(value, index) {
526
+ var bws = Lexer.BWS(value, index);
527
+ var start = index;
528
+ index = bws;
529
+ if (utils_1.default.equals(value, index, "["))
530
+ index++;
531
+ else if (utils_1.default.equals(value, index, "%5B"))
532
+ index += 3;
533
+ if (index === bws)
534
+ return start;
535
+ bws = Lexer.BWS(value, index);
536
+ return bws;
537
+ }
538
+ Lexer.beginArray = beginArray;
539
+ function endArray(value, index) {
540
+ var bws = Lexer.BWS(value, index);
541
+ var start = index;
542
+ index = bws;
543
+ if (utils_1.default.equals(value, index, "]"))
544
+ index++;
545
+ else if (utils_1.default.equals(value, index, "%5D"))
546
+ index += 3;
547
+ if (index === bws)
548
+ return start;
549
+ bws = Lexer.BWS(value, index);
550
+ return bws;
551
+ }
552
+ Lexer.endArray = endArray;
553
+ function quotationMark(value, index) {
554
+ if (Lexer.DQUOTE(value[index]))
555
+ return index + 1;
556
+ if (utils_1.default.equals(value, index, "%22"))
557
+ return index + 3;
558
+ return index;
559
+ }
560
+ Lexer.quotationMark = quotationMark;
561
+ function nameSeparator(value, index) {
562
+ var bws = Lexer.BWS(value, index);
563
+ var start = index;
564
+ index = bws;
565
+ var colon = Lexer.COLON(value, index);
566
+ if (!colon)
567
+ return start;
568
+ index = colon;
569
+ bws = Lexer.BWS(value, index);
570
+ return bws;
571
+ }
572
+ Lexer.nameSeparator = nameSeparator;
573
+ function valueSeparator(value, index) {
574
+ var bws = Lexer.BWS(value, index);
575
+ var start = index;
576
+ index = bws;
577
+ var comma = Lexer.COMMA(value, index);
578
+ if (!comma)
579
+ return start;
580
+ index = comma;
581
+ bws = Lexer.BWS(value, index);
582
+ return bws;
583
+ }
584
+ Lexer.valueSeparator = valueSeparator;
585
+ function escape(value, index) {
586
+ if (utils_1.default.equals(value, index, "\\"))
587
+ return index + 1;
588
+ if (utils_1.default.equals(value, index, "%5C"))
589
+ return index + 3;
590
+ return index;
591
+ }
592
+ Lexer.escape = escape;
593
+ })(Lexer = exports.Lexer || (exports.Lexer = {}));
594
+ exports.default = Lexer;
595
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}