affinirum 1.0.3 → 1.0.4

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.
Files changed (103) hide show
  1. package/dst/Affinirum.d.ts +10 -10
  2. package/dst/Affinirum.js +41 -41
  3. package/dst/Constant.d.ts +2 -2
  4. package/dst/Constant.js +1 -1
  5. package/dst/Constants.d.ts +1 -1
  6. package/dst/Constants.js +20 -20
  7. package/dst/Functions.d.ts +1 -1
  8. package/dst/Functions.js +75 -75
  9. package/dst/Keywords.js +15 -15
  10. package/dst/Node.d.ts +3 -3
  11. package/dst/Node.js +2 -2
  12. package/dst/ParserFrame.js +31 -31
  13. package/dst/ParserState.d.ts +4 -4
  14. package/dst/ParserState.js +115 -111
  15. package/dst/StaticScope.d.ts +1 -1
  16. package/dst/Type.d.ts +5 -5
  17. package/dst/Type.js +23 -23
  18. package/dst/Variable.d.ts +2 -2
  19. package/dst/Variable.js +1 -1
  20. package/dst/atom/ArrayAtom.d.ts +2 -2
  21. package/dst/atom/ArrayAtom.js +1 -1
  22. package/dst/atom/FunctionAtom.d.ts +2 -2
  23. package/dst/atom/FunctionAtom.js +4 -4
  24. package/dst/atom/ObjectAtom.d.ts +2 -2
  25. package/dst/atom/ObjectAtom.js +1 -1
  26. package/dst/atom/PrimitiveAtom.d.ts +2 -2
  27. package/dst/atom/PrimitiveAtom.js +8 -8
  28. package/dst/cjs/Affinirum.js +20 -20
  29. package/dst/cjs/Constants.js +10 -10
  30. package/dst/cjs/Functions.js +66 -66
  31. package/dst/cjs/Keywords.js +15 -15
  32. package/dst/cjs/Node.js +1 -1
  33. package/dst/cjs/ParserFrame.js +31 -31
  34. package/dst/cjs/ParserState.js +106 -102
  35. package/dst/cjs/Type.js +19 -19
  36. package/dst/cjs/atom/ArrayAtom.js +1 -1
  37. package/dst/cjs/atom/FunctionAtom.js +3 -3
  38. package/dst/cjs/atom/ObjectAtom.js +1 -1
  39. package/dst/cjs/atom/PrimitiveAtom.js +8 -8
  40. package/dst/cjs/constant/Boolean.js +1 -1
  41. package/dst/cjs/constant/Buffer.js +3 -3
  42. package/dst/cjs/constant/Enumerable.js +3 -3
  43. package/dst/cjs/constant/Float.js +14 -14
  44. package/dst/cjs/constant/Integer.js +33 -33
  45. package/dst/cjs/constant/Iterable.js +2 -2
  46. package/dst/cjs/constant/Number.js +9 -9
  47. package/dst/cjs/constant/String.js +20 -22
  48. package/dst/cjs/constant/Timestamp.js +4 -4
  49. package/dst/cjs/constant/Unknown.js +22 -22
  50. package/dst/cjs/constant/notation/AN.js +13 -13
  51. package/dst/cjs/constant/notation/JSON.js +1 -1
  52. package/dst/cjs/node/ArrayNode.js +1 -1
  53. package/dst/cjs/node/BlockNode.js +1 -1
  54. package/dst/cjs/node/CallNode.js +2 -2
  55. package/dst/cjs/node/ObjectNode.js +1 -1
  56. package/dst/cjs/node/SwitchNode.js +1 -1
  57. package/dst/constant/Array.d.ts +1 -1
  58. package/dst/constant/Array.js +3 -3
  59. package/dst/constant/Boolean.d.ts +1 -1
  60. package/dst/constant/Boolean.js +3 -3
  61. package/dst/constant/Buffer.d.ts +1 -1
  62. package/dst/constant/Buffer.js +5 -5
  63. package/dst/constant/Enumerable.d.ts +1 -1
  64. package/dst/constant/Enumerable.js +6 -6
  65. package/dst/constant/Float.d.ts +1 -1
  66. package/dst/constant/Float.js +16 -16
  67. package/dst/constant/Integer.d.ts +1 -1
  68. package/dst/constant/Integer.js +35 -35
  69. package/dst/constant/Iterable.d.ts +1 -1
  70. package/dst/constant/Iterable.js +6 -6
  71. package/dst/constant/Number.d.ts +1 -1
  72. package/dst/constant/Number.js +11 -11
  73. package/dst/constant/Object.d.ts +1 -1
  74. package/dst/constant/Object.js +2 -2
  75. package/dst/constant/String.d.ts +1 -2
  76. package/dst/constant/String.js +21 -22
  77. package/dst/constant/Timestamp.d.ts +1 -1
  78. package/dst/constant/Timestamp.js +6 -6
  79. package/dst/constant/Unknown.d.ts +2 -2
  80. package/dst/constant/Unknown.js +29 -29
  81. package/dst/constant/notation/AN.d.ts +2 -2
  82. package/dst/constant/notation/AN.js +17 -17
  83. package/dst/constant/notation/JSON.d.ts +2 -2
  84. package/dst/constant/notation/JSON.js +3 -3
  85. package/dst/index.d.ts +3 -3
  86. package/dst/index.js +3 -3
  87. package/dst/node/ArrayNode.d.ts +4 -4
  88. package/dst/node/ArrayNode.js +5 -5
  89. package/dst/node/BlockNode.d.ts +4 -4
  90. package/dst/node/BlockNode.js +5 -5
  91. package/dst/node/CallNode.d.ts +4 -4
  92. package/dst/node/CallNode.js +7 -7
  93. package/dst/node/ConstantNode.d.ts +5 -5
  94. package/dst/node/ConstantNode.js +1 -1
  95. package/dst/node/LoopNode.d.ts +4 -4
  96. package/dst/node/LoopNode.js +2 -2
  97. package/dst/node/ObjectNode.d.ts +4 -4
  98. package/dst/node/ObjectNode.js +5 -5
  99. package/dst/node/SwitchNode.d.ts +4 -4
  100. package/dst/node/SwitchNode.js +5 -5
  101. package/dst/node/VariableNode.d.ts +5 -5
  102. package/dst/node/VariableNode.js +1 -1
  103. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import { Constant } from './Constant.js';
2
- import { Variable } from './Variable.js';
3
- import { Value } from './Value.js';
4
- import { Type } from './Type.js';
5
- import { Node } from './Node.js';
6
- import { LoopNode } from './node/LoopNode.js';
7
- import { SwitchNode } from './node/SwitchNode.js';
8
- import { ParserFrame } from './ParserFrame.js';
9
- import { ParserState } from './ParserState.js';
10
- import { StaticScope } from './StaticScope.js';
1
+ import { Constant } from "./Constant.js";
2
+ import { Variable } from "./Variable.js";
3
+ import { Value } from "./Value.js";
4
+ import { Type } from "./Type.js";
5
+ import { Node } from "./Node.js";
6
+ import { LoopNode } from "./node/LoopNode.js";
7
+ import { SwitchNode } from "./node/SwitchNode.js";
8
+ import { ParserFrame } from "./ParserFrame.js";
9
+ import { ParserState } from "./ParserState.js";
10
+ import { StaticScope } from "./StaticScope.js";
11
11
  export declare class Affinirum {
12
12
  static readonly keywords: string[];
13
13
  protected readonly _script: string;
package/dst/Affinirum.js CHANGED
@@ -1,24 +1,24 @@
1
- import { funcOr, funcAnd, funcNot } from './constant/Boolean.js';
2
- import { funcAdd } from './constant/Enumerable.js';
3
- import { funcAt, funcHas } from './constant/Iterable.js';
4
- import { funcGreaterThan, funcLessThan, funcGreaterOrEqual, funcLessOrEqual, funcSubtract, funcMultiply, funcDivide, funcRemainder, funcPower, funcNegate } from './constant/Number.js';
5
- import { funcCoalesce, funcEqual, funcNotEqual } from './constant/Unknown.js';
6
- import { Constant } from './Constant.js';
7
- import { Variable } from './Variable.js';
8
- import { Type } from './Type.js';
9
- import { Keywords } from './Keywords.js';
10
- import { Constants } from './Constants.js';
11
- import { Functions } from './Functions.js';
12
- import { ArrayNode } from './node/ArrayNode.js';
13
- import { BlockNode } from './node/BlockNode.js';
14
- import { ConstantNode } from './node/ConstantNode.js';
15
- import { CallNode } from './node/CallNode.js';
16
- import { LoopNode } from './node/LoopNode.js';
17
- import { ObjectNode } from './node/ObjectNode.js';
18
- import { SwitchNode } from './node/SwitchNode.js';
19
- import { VariableNode } from './node/VariableNode.js';
20
- import { ParserState } from './ParserState.js';
21
- import { StaticScope } from './StaticScope.js';
1
+ import { funcOr, funcAnd, funcNot } from "./constant/Boolean.js";
2
+ import { funcAdd } from "./constant/Enumerable.js";
3
+ import { funcAt, funcHas } from "./constant/Iterable.js";
4
+ import { funcGreaterThan, funcLessThan, funcGreaterOrEqual, funcLessOrEqual, funcSubtract, funcMultiply, funcDivide, funcRemainder, funcPower, funcNegate } from "./constant/Number.js";
5
+ import { funcCoalesce, funcEqual, funcNotEqual } from "./constant/Unknown.js";
6
+ import { Constant } from "./Constant.js";
7
+ import { Variable } from "./Variable.js";
8
+ import { Type } from "./Type.js";
9
+ import { Keywords } from "./Keywords.js";
10
+ import { Constants } from "./Constants.js";
11
+ import { Functions } from "./Functions.js";
12
+ import { ArrayNode } from "./node/ArrayNode.js";
13
+ import { BlockNode } from "./node/BlockNode.js";
14
+ import { ConstantNode } from "./node/ConstantNode.js";
15
+ import { CallNode } from "./node/CallNode.js";
16
+ import { LoopNode } from "./node/LoopNode.js";
17
+ import { ObjectNode } from "./node/ObjectNode.js";
18
+ import { SwitchNode } from "./node/SwitchNode.js";
19
+ import { VariableNode } from "./node/VariableNode.js";
20
+ import { ParserState } from "./ParserState.js";
21
+ import { StaticScope } from "./StaticScope.js";
22
22
  export class Affinirum {
23
23
  static keywords = [...Keywords, ...Constants.map((c) => c[0])];
24
24
  _script;
@@ -47,7 +47,7 @@ export class Affinirum {
47
47
  const state = new ParserState(this._script);
48
48
  this._root = this._block(state.next(), this._scope);
49
49
  if (!state.isVoid) {
50
- state.throwError('unexpected expression token or expression end');
50
+ state.throwError("unexpected expression token or expression end");
51
51
  }
52
52
  this._root = this._root.compile(config?.type ?? Type.Unknown);
53
53
  }
@@ -190,7 +190,7 @@ export class Affinirum {
190
190
  const frame = state.starts();
191
191
  if (state.isDotMark || state.isQuestionMark) {
192
192
  const operator = state.isDotMark ? funcAt : funcHas;
193
- if (state.next().isLiteral && (typeof state.literal.value === 'string' || typeof state.literal.value === 'bigint')) {
193
+ if (state.next().isLiteral && (typeof state.literal.value === "string" || typeof state.literal.value === "bigint")) {
194
194
  node = this._call(frame.ends(state), operator, [node, new ConstantNode(state, new Constant(state.literal.value))]);
195
195
  state.next();
196
196
  }
@@ -219,7 +219,7 @@ export class Affinirum {
219
219
  }
220
220
  }
221
221
  else {
222
- state.throwError('missing array index or object key');
222
+ state.throwError("missing array index or object key");
223
223
  }
224
224
  }
225
225
  else if (state.isParenthesesOpen) {
@@ -252,10 +252,10 @@ export class Affinirum {
252
252
  const constants = this._constants.get(state.token);
253
253
  if (constants != null) {
254
254
  if (!state.next().isDotMark) {
255
- state.throwError('missing constant accessor operator');
255
+ state.throwError("missing constant accessor operator");
256
256
  }
257
257
  if (!state.next().isToken) {
258
- state.throwError('missing constant name');
258
+ state.throwError("missing constant name");
259
259
  }
260
260
  const constant = constants[state.token];
261
261
  if (!constant) {
@@ -282,7 +282,7 @@ export class Affinirum {
282
282
  }
283
283
  if (state.next().isAssignment) {
284
284
  if (variable.constant) {
285
- state.throwError('illegal constant assignment');
285
+ state.throwError("illegal constant assignment");
286
286
  }
287
287
  if (state.assignment.operator) {
288
288
  const operator = state.assignment.operator;
@@ -301,7 +301,7 @@ export class Affinirum {
301
301
  return node;
302
302
  }
303
303
  else if (state.isBracesClose) {
304
- state.throwError('unexpected closing braces');
304
+ state.throwError("unexpected closing braces");
305
305
  }
306
306
  else if (state.isParenthesesOpen) {
307
307
  const node = this._unit(state.next(), scope);
@@ -309,7 +309,7 @@ export class Affinirum {
309
309
  return node;
310
310
  }
311
311
  else if (state.isParenthesesClose) {
312
- state.throwError('unexpected closing parentheses');
312
+ state.throwError("unexpected closing parentheses");
313
313
  }
314
314
  else if (state.isBracketsOpen) {
315
315
  const frame = state.starts();
@@ -336,21 +336,21 @@ export class Affinirum {
336
336
  frame.ends(state);
337
337
  state.closeBrackets().next();
338
338
  if (colon) {
339
- return new ObjectNode(frame, subnodes.map(([k, v]) => [typeof k === 'number' ? new ConstantNode(v, new Constant(String(k))) : k, v]));
339
+ return new ObjectNode(frame, subnodes.map(([k, v]) => [typeof k === "number" ? new ConstantNode(v, new Constant(String(k))) : k, v]));
340
340
  }
341
341
  return new ArrayNode(frame, subnodes.map(([, v]) => v));
342
342
  }
343
343
  else if (state.isBracketsClose) {
344
- state.throwError('unexpected closing brackets');
344
+ state.throwError("unexpected closing brackets");
345
345
  }
346
346
  else if (state.isVariableDefinition || state.isConstantDefinition) {
347
347
  const constant = state.isConstantDefinition;
348
348
  if (!state.next().isToken) {
349
- state.throwError(`missing ${constant ? 'constant' : 'variable'} name`);
349
+ state.throwError(`missing ${constant ? "constant" : "variable"} name`);
350
350
  }
351
351
  const token = state.token;
352
352
  if (scope.has(token)) {
353
- state.throwError(`illegal redefinition of ${constant ? 'constant' : 'variable'} ${token}`);
353
+ state.throwError(`illegal redefinition of ${constant ? "constant" : "variable"} ${token}`);
354
354
  }
355
355
  const frame = state.starts();
356
356
  let type;
@@ -361,7 +361,7 @@ export class Affinirum {
361
361
  scope.local(token, variable);
362
362
  if (state.isAssignment) {
363
363
  if (state.assignment.operator) {
364
- state.throwError(`illegal assignment operator to ${constant ? 'constant' : 'variable'} ${token}`);
364
+ state.throwError(`illegal assignment operator to ${constant ? "constant" : "variable"} ${token}`);
365
365
  }
366
366
  return new VariableNode(frame, variable, this._unit(state.next(), scope));
367
367
  }
@@ -377,9 +377,9 @@ export class Affinirum {
377
377
  return this._switch(state, scope);
378
378
  }
379
379
  else if (state.isVoid) {
380
- state.throwError('unexpected end of expression');
380
+ state.throwError("unexpected end of expression");
381
381
  }
382
- state.throwError('unexpected expression token');
382
+ state.throwError("unexpected expression token");
383
383
  }
384
384
  _function(state, scope) {
385
385
  const frame = state.starts();
@@ -392,11 +392,11 @@ export class Affinirum {
392
392
  const variables = new Map();
393
393
  while (!state.next().isParenthesesClose) {
394
394
  if (!state.isToken) {
395
- state.throwError('missing function argument name');
395
+ state.throwError("missing function argument name");
396
396
  }
397
397
  const token = state.token;
398
398
  if (scope.get(token)) {
399
- state.throwError('variable redefinition');
399
+ state.throwError("variable redefinition");
400
400
  }
401
401
  let argType = Type.Unknown;
402
402
  if (state.next().isColonSeparator) {
@@ -488,7 +488,7 @@ export class Affinirum {
488
488
  itemPropTypes.push([token, this._type(state, scope)]);
489
489
  }
490
490
  else {
491
- state.throwError('missing type or property name');
491
+ state.throwError("missing type or property name");
492
492
  }
493
493
  if (!state.isCommaSeparator) {
494
494
  break;
@@ -517,7 +517,7 @@ export class Affinirum {
517
517
  break;
518
518
  }
519
519
  else {
520
- state.throwError('variadic function argument must be an array type');
520
+ state.throwError("variadic function argument must be an array type");
521
521
  }
522
522
  }
523
523
  if (!state.isCommaSeparator) {
@@ -531,7 +531,7 @@ export class Affinirum {
531
531
  return Type.functionType(retType, argTypes, variadic);
532
532
  }
533
533
  else {
534
- state.throwError('missing type name');
534
+ state.throwError("missing type name");
535
535
  }
536
536
  }
537
537
  }
package/dst/Constant.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Value } from './Value.js';
2
- import { Type } from './Type.js';
1
+ import { Value } from "./Value.js";
2
+ import { Type } from "./Type.js";
3
3
  export declare class Constant {
4
4
  protected readonly _value: Value;
5
5
  protected _type: Type;
package/dst/Constant.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Type } from './Type.js';
1
+ import { Type } from "./Type.js";
2
2
  export class Constant {
3
3
  _value;
4
4
  _type;
@@ -1,2 +1,2 @@
1
- import { Constant } from './Constant.js';
1
+ import { Constant } from "./Constant.js";
2
2
  export declare const Constants: [string, Record<string, Constant>][];
package/dst/Constants.js CHANGED
@@ -1,22 +1,22 @@
1
- import { constArray } from './constant/Array.js';
2
- import { constBoolean } from './constant/Boolean.js';
3
- import { constBuffer } from './constant/Buffer.js';
4
- import { constInteger } from './constant/Integer.js';
5
- import { constFloat } from './constant/Float.js';
6
- import { constObject } from './constant/Object.js';
7
- import { constString } from './constant/String.js';
8
- import { constTimestamp } from './constant/Timestamp.js';
9
- import { constAN } from './constant/notation/AN.js';
10
- import { constJSON } from './constant/notation/JSON.js';
1
+ import { constArray } from "./constant/Array.js";
2
+ import { constBoolean } from "./constant/Boolean.js";
3
+ import { constBuffer } from "./constant/Buffer.js";
4
+ import { constInteger } from "./constant/Integer.js";
5
+ import { constFloat } from "./constant/Float.js";
6
+ import { constObject } from "./constant/Object.js";
7
+ import { constString } from "./constant/String.js";
8
+ import { constTimestamp } from "./constant/Timestamp.js";
9
+ import { constAN } from "./constant/notation/AN.js";
10
+ import { constJSON } from "./constant/notation/JSON.js";
11
11
  export const Constants = [
12
- ['Array', constArray],
13
- ['Boolean', constBoolean],
14
- ['Buffer', constBuffer],
15
- ['Float', constFloat],
16
- ['Integer', constInteger],
17
- ['Object', constObject],
18
- ['String', constString],
19
- ['Timestamp', constTimestamp],
20
- ['AN', constAN],
21
- ['JSON', constJSON],
12
+ ["Array", constArray],
13
+ ["Boolean", constBoolean],
14
+ ["Buffer", constBuffer],
15
+ ["Float", constFloat],
16
+ ["Integer", constInteger],
17
+ ["Object", constObject],
18
+ ["String", constString],
19
+ ["Timestamp", constTimestamp],
20
+ ["AN", constAN],
21
+ ["JSON", constJSON],
22
22
  ];
@@ -1,2 +1,2 @@
1
- import { Constant } from './Constant.js';
1
+ import { Constant } from "./Constant.js";
2
2
  export declare const Functions: [string, Constant][];
package/dst/Functions.js CHANGED
@@ -1,86 +1,86 @@
1
- import { funcFirst, funcLast, funcFirstIndex, funcLastIndex, funcEvery, funcAny, funcFlatten, funcReverse, funcMutate, funcFilter, funcReduce, funcCompose, funcPrepend, funcAppend } from './constant/Array.js';
2
- import { funcByte } from './constant/Buffer.js';
3
- import { funcAdd, funcSlice, funcSplice, funcInject } from './constant/Enumerable.js';
4
- import { funcLength, funcContains, funcAt, funcHas } from './constant/Iterable.js';
5
- import { funcGreaterThan, funcLessThan, funcGreaterOrEqual, funcLessOrEqual, funcSubtract, funcMultiply, funcDivide, funcRemainder, funcModulo, funcPower, funcRoot, funcNegate, funcCast } from './constant/Number.js';
6
- import { funcEntries, funcKeys, funcValues } from './constant/Object.js';
7
- import { funcLike, funcUnlike, funcStartsWith, funcEndsWith, funcChar, funcCharCode, funcTrim, funcTrimStart, funcTrimEnd, funcLowerCase, funcUpperCase, funcSplit } from './constant/String.js';
8
- import { funcYear, funcMonth, funcMonthIndex, funcWeekdayIndex, funcDay, funcHour, funcMinute, funcSecond, funcMillisecond, funcEpochTime } from './constant/Timestamp.js';
9
- import { funcCoalesce, funcEqual, funcNotEqual, funcEncode, funcFormat } from './constant/Unknown.js';
1
+ import { funcFirst, funcLast, funcFirstIndex, funcLastIndex, funcEvery, funcAny, funcFlatten, funcReverse, funcMutate, funcFilter, funcReduce, funcCompose, funcPrepend, funcAppend } from "./constant/Array.js";
2
+ import { funcByte } from "./constant/Buffer.js";
3
+ import { funcAdd, funcSlice, funcSplice, funcInject } from "./constant/Enumerable.js";
4
+ import { funcLength, funcContains, funcAt, funcHas } from "./constant/Iterable.js";
5
+ import { funcGreaterThan, funcLessThan, funcGreaterOrEqual, funcLessOrEqual, funcSubtract, funcMultiply, funcDivide, funcRemainder, funcModulo, funcPower, funcRoot, funcNegate, funcCast } from "./constant/Number.js";
6
+ import { funcEntries, funcKeys, funcValues } from "./constant/Object.js";
7
+ import { funcLike, funcUnlike, funcStartsWith, funcEndsWith, funcChar, funcCharCode, funcTrim, funcTrimStart, funcTrimEnd, funcLowerCase, funcUpperCase, funcSplit } from "./constant/String.js";
8
+ import { funcYear, funcMonth, funcMonthIndex, funcWeekdayIndex, funcDay, funcHour, funcMinute, funcSecond, funcMillisecond, funcEpochTime } from "./constant/Timestamp.js";
9
+ import { funcCoalesce, funcEqual, funcNotEqual, funcEncode, funcFormat } from "./constant/Unknown.js";
10
10
  export const Functions = [
11
11
  // Array
12
- ['First', funcFirst],
13
- ['Last', funcLast],
14
- ['FirstIndex', funcFirstIndex],
15
- ['LastIndex', funcLastIndex],
16
- ['Any', funcAny],
17
- ['Every', funcEvery],
18
- ['Flatten', funcFlatten],
19
- ['Reverse', funcReverse],
20
- ['Mutate', funcMutate],
21
- ['Filter', funcFilter],
22
- ['Reduce', funcReduce],
23
- ['Compose', funcCompose],
24
- ['Prepend', funcPrepend],
25
- ['Append', funcAppend],
12
+ ["First", funcFirst],
13
+ ["Last", funcLast],
14
+ ["FirstIndex", funcFirstIndex],
15
+ ["LastIndex", funcLastIndex],
16
+ ["Any", funcAny],
17
+ ["Every", funcEvery],
18
+ ["Flatten", funcFlatten],
19
+ ["Reverse", funcReverse],
20
+ ["Mutate", funcMutate],
21
+ ["Filter", funcFilter],
22
+ ["Reduce", funcReduce],
23
+ ["Compose", funcCompose],
24
+ ["Prepend", funcPrepend],
25
+ ["Append", funcAppend],
26
26
  // Buffer
27
- ['Byte', funcByte],
27
+ ["Byte", funcByte],
28
28
  // Enumerable
29
- ['Add', funcAdd],
30
- ['Slice', funcSlice],
31
- ['Splice', funcSplice],
32
- ['Inject', funcInject],
29
+ ["Add", funcAdd],
30
+ ["Slice", funcSlice],
31
+ ["Splice", funcSplice],
32
+ ["Inject", funcInject],
33
33
  // Iterable
34
- ['Length', funcLength],
35
- ['Contains', funcContains],
36
- ['At', funcAt],
37
- ['Has', funcHas],
34
+ ["Length", funcLength],
35
+ ["Contains", funcContains],
36
+ ["At", funcAt],
37
+ ["Has", funcHas],
38
38
  // Number
39
- ['GreaterThan', funcGreaterThan],
40
- ['LessThan', funcLessThan],
41
- ['GreaterOrEqual', funcGreaterOrEqual],
42
- ['LessOrEqual', funcLessOrEqual],
43
- ['Subtract', funcSubtract],
44
- ['Multiply', funcMultiply],
45
- ['Divide', funcDivide],
46
- ['Remainder', funcRemainder],
47
- ['Modulo', funcModulo],
48
- ['Power', funcPower],
49
- ['Root', funcRoot],
50
- ['Negate', funcNegate],
51
- ['Cast', funcCast],
39
+ ["GreaterThan", funcGreaterThan],
40
+ ["LessThan", funcLessThan],
41
+ ["GreaterOrEqual", funcGreaterOrEqual],
42
+ ["LessOrEqual", funcLessOrEqual],
43
+ ["Subtract", funcSubtract],
44
+ ["Multiply", funcMultiply],
45
+ ["Divide", funcDivide],
46
+ ["Remainder", funcRemainder],
47
+ ["Modulo", funcModulo],
48
+ ["Power", funcPower],
49
+ ["Root", funcRoot],
50
+ ["Negate", funcNegate],
51
+ ["Cast", funcCast],
52
52
  // Object
53
- ['Entries', funcEntries],
54
- ['Keys', funcKeys],
55
- ['Values', funcValues],
53
+ ["Entries", funcEntries],
54
+ ["Keys", funcKeys],
55
+ ["Values", funcValues],
56
56
  // String
57
- ['Like', funcLike],
58
- ['Unlike', funcUnlike],
59
- ['StartsWith', funcStartsWith],
60
- ['EndsWith', funcEndsWith],
61
- ['Char', funcChar],
62
- ['CharCode', funcCharCode],
63
- ['Trim', funcTrim],
64
- ['TrimStart', funcTrimStart],
65
- ['TrimEnd', funcTrimEnd],
66
- ['LowerCase', funcLowerCase],
67
- ['UpperCase', funcUpperCase],
68
- ['Split', funcSplit],
57
+ ["Like", funcLike],
58
+ ["Unlike", funcUnlike],
59
+ ["StartsWith", funcStartsWith],
60
+ ["EndsWith", funcEndsWith],
61
+ ["Char", funcChar],
62
+ ["CharCode", funcCharCode],
63
+ ["Trim", funcTrim],
64
+ ["TrimStart", funcTrimStart],
65
+ ["TrimEnd", funcTrimEnd],
66
+ ["LowerCase", funcLowerCase],
67
+ ["UpperCase", funcUpperCase],
68
+ ["Split", funcSplit],
69
69
  // Timestamp
70
- ['Year', funcYear],
71
- ['Month', funcMonth],
72
- ['MonthIndex', funcMonthIndex],
73
- ['WeekdayIndex', funcWeekdayIndex],
74
- ['Day', funcDay],
75
- ['Hour', funcHour],
76
- ['Minute', funcMinute],
77
- ['Second', funcSecond],
78
- ['Millisecond', funcMillisecond],
79
- ['EpochTime', funcEpochTime],
70
+ ["Year", funcYear],
71
+ ["Month", funcMonth],
72
+ ["MonthIndex", funcMonthIndex],
73
+ ["WeekdayIndex", funcWeekdayIndex],
74
+ ["Day", funcDay],
75
+ ["Hour", funcHour],
76
+ ["Minute", funcMinute],
77
+ ["Second", funcSecond],
78
+ ["Millisecond", funcMillisecond],
79
+ ["EpochTime", funcEpochTime],
80
80
  // Unknown
81
- ['Coalesce', funcCoalesce],
82
- ['Equal', funcEqual],
83
- ['Unequal', funcNotEqual],
84
- ['Encode', funcEncode],
85
- ['Format', funcFormat],
81
+ ["Coalesce", funcCoalesce],
82
+ ["Equal", funcEqual],
83
+ ["Unequal", funcNotEqual],
84
+ ["Encode", funcEncode],
85
+ ["Format", funcFormat],
86
86
  ];
package/dst/Keywords.js CHANGED
@@ -1,17 +1,17 @@
1
1
  export const Keywords = [
2
- 'true', 'false',
3
- 'null', 'void',
4
- 'boolean', 'bool',
5
- 'timestamp', 'time',
6
- 'float', 'flo',
7
- 'integer', 'int',
8
- 'buffer', 'buf',
9
- 'string', 'str',
10
- 'array', 'arr',
11
- 'object', 'obj',
12
- 'function', 'func',
13
- 'variable', 'var',
14
- 'constant', 'const',
15
- 'while',
16
- 'if', 'else',
2
+ "true", "false",
3
+ "null", "void",
4
+ "boolean", "bool",
5
+ "timestamp", "time",
6
+ "float", "flo",
7
+ "integer", "int",
8
+ "buffer", "buf",
9
+ "string", "str",
10
+ "array", "arr",
11
+ "object", "obj",
12
+ "function", "func",
13
+ "variable", "var",
14
+ "constant", "const",
15
+ "while",
16
+ "if", "else",
17
17
  ];
package/dst/Node.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { ParserFrame } from './ParserFrame.js';
2
- import { Value } from './Value.js';
3
- import { Type } from './Type.js';
1
+ import { ParserFrame } from "./ParserFrame.js";
2
+ import { Value } from "./Value.js";
3
+ import { Type } from "./Type.js";
4
4
  export declare abstract class Node extends ParserFrame {
5
5
  constructor(frame: ParserFrame);
6
6
  abstract type: Type;
package/dst/Node.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ParserFrame } from './ParserFrame.js';
1
+ import { ParserFrame } from "./ParserFrame.js";
2
2
  export class Node extends ParserFrame {
3
3
  constructor(frame) {
4
4
  super(frame.expr, frame.start, frame.end);
@@ -17,6 +17,6 @@ export class Node extends ParserFrame {
17
17
  return this.throwError(`type ${this.type} mismatch with expected type ${type}`);
18
18
  }
19
19
  toString(ident = 0) {
20
- return ' '.repeat(ident) + `[${this._start}:${this.end}] <${this.type}>`;
20
+ return " ".repeat(ident) + `[${this._start}:${this.end}] <${this.type}>`;
21
21
  }
22
22
  }
@@ -33,13 +33,13 @@ export class ParserFrame {
33
33
  throwError(message) {
34
34
  const offset = this._start < 32 ? 0 : this._start - 32;
35
35
  const length = this._end < this._start ? 0 : this._end - this._start - 1;
36
- let expr = '';
36
+ let expr = "";
37
37
  for (let i = 0; i < this._expr.length; ++i) {
38
38
  const c = this._expr[i];
39
- expr += SPACE_SYMBOLS.includes(c) ? ' ' : c;
39
+ expr += SPACE_SYMBOLS.includes(c) ? " " : c;
40
40
  }
41
41
  throw new Error(`error: ${message} at position ${this._start}:\n${expr.substring(offset, offset + 60)}\n` +
42
- `${' '.repeat(expr.substring(offset, this._start).length)}^${'\''.repeat(length)}`);
42
+ `${" ".repeat(expr.substring(offset, this._start).length)}^${"'".repeat(length)}`);
43
43
  }
44
44
  toString() {
45
45
  return `[${this._start}:${this._end}]`;
@@ -47,34 +47,34 @@ export class ParserFrame {
47
47
  }
48
48
  const SPACE_SYMBOLS = [
49
49
  // Whitespace and line-breaking characters
50
- '\t', // tab
51
- '\n', // newline
52
- '\r', // carriage return
53
- '\f', // form feed
54
- '\v', // vertical tab
50
+ "\t", // tab
51
+ "\n", // newline
52
+ "\r", // carriage return
53
+ "\f", // form feed
54
+ "\v", // vertical tab
55
55
  // Unicode spaces and separators
56
- '\u00A0', // no-break space
57
- '\u1680', // ogham space mark
58
- '\u180E', // mongolian vowel separator
59
- '\u2000', // en quad
60
- '\u2001', // em quad
61
- '\u2002', // en space
62
- '\u2003', // em space
63
- '\u2004', // three-per-em space
64
- '\u2005', // four-per-em space
65
- '\u2006', // six-per-em space
66
- '\u2007', // figure space
67
- '\u2008', // punctuation space
68
- '\u2009', // thin space
69
- '\u200A', // hair space
70
- '\u2028', // line separator
71
- '\u2029', // paragraph separator
72
- '\u205F', // medium mathematical space
73
- '\u3000', // ideographic space
56
+ "\u00A0", // no-break space
57
+ "\u1680", // ogham space mark
58
+ "\u180E", // mongolian vowel separator
59
+ "\u2000", // en quad
60
+ "\u2001", // em quad
61
+ "\u2002", // en space
62
+ "\u2003", // em space
63
+ "\u2004", // three-per-em space
64
+ "\u2005", // four-per-em space
65
+ "\u2006", // six-per-em space
66
+ "\u2007", // figure space
67
+ "\u2008", // punctuation space
68
+ "\u2009", // thin space
69
+ "\u200A", // hair space
70
+ "\u2028", // line separator
71
+ "\u2029", // paragraph separator
72
+ "\u205F", // medium mathematical space
73
+ "\u3000", // ideographic space
74
74
  // Zero-width & directional formatting characters
75
- '\u200B', // zero-width space
76
- '\u200C', // zero-width non-joiner
77
- '\u200D', // zero-width joiner
78
- '\u2060', // word joiner
79
- '\uFEFF', // byte order mark
75
+ "\u200B", // zero-width space
76
+ "\u200C", // zero-width non-joiner
77
+ "\u200D", // zero-width joiner
78
+ "\u2060", // word joiner
79
+ "\uFEFF", // byte order mark
80
80
  ];
@@ -1,7 +1,7 @@
1
- import { Constant } from './Constant.js';
2
- import { Value } from './Value.js';
3
- import { Type } from './Type.js';
4
- import { ParserFrame } from './ParserFrame.js';
1
+ import { Constant } from "./Constant.js";
2
+ import { Value } from "./Value.js";
3
+ import { Type } from "./Type.js";
4
+ import { ParserFrame } from "./ParserFrame.js";
5
5
  declare class Literal {
6
6
  readonly value: Value;
7
7
  constructor(value: Value);