@mojir/lits 2.0.9 → 2.0.10
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/dist/cli/cli.js +68 -175
- package/dist/cli/src/builtin/index.d.ts +3 -0
- package/dist/cli/src/builtin/interface.d.ts +4 -2
- package/dist/cli/src/builtin/specialExpressions/commonParser.d.ts +4 -0
- package/dist/index.esm.js +68 -175
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +68 -175
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +68 -175
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/builtin/index.d.ts +3 -0
- package/dist/src/builtin/interface.d.ts +4 -2
- package/dist/src/builtin/specialExpressions/commonParser.d.ts +4 -0
- package/dist/testFramework.esm.js +68 -175
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +68 -175
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
package/dist/lits.iife.js
CHANGED
|
@@ -3164,7 +3164,7 @@ var Lits = (function (exports) {
|
|
|
3164
3164
|
},
|
|
3165
3165
|
};
|
|
3166
3166
|
|
|
3167
|
-
var version = "2.0.
|
|
3167
|
+
var version = "2.0.10";
|
|
3168
3168
|
|
|
3169
3169
|
var uuidTemplate = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
|
|
3170
3170
|
var xyRegexp = /[xy]/g;
|
|
@@ -4379,6 +4379,7 @@ var Lits = (function (exports) {
|
|
|
4379
4379
|
};
|
|
4380
4380
|
return node;
|
|
4381
4381
|
},
|
|
4382
|
+
validateParameterCount: function () { return undefined; },
|
|
4382
4383
|
evaluate: function (node, contextStack, _a) {
|
|
4383
4384
|
var e_1, _b;
|
|
4384
4385
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4406,42 +4407,30 @@ var Lits = (function (exports) {
|
|
|
4406
4407
|
},
|
|
4407
4408
|
};
|
|
4408
4409
|
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
var parseToken = _a.parseToken;
|
|
4412
|
-
var node = {
|
|
4413
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
4414
|
-
n: 'comment',
|
|
4415
|
-
p: [],
|
|
4416
|
-
token: undefined,
|
|
4417
|
-
};
|
|
4418
|
-
var tkn = asToken(tokenStream.tokens[parseState.position]);
|
|
4419
|
-
while (!isRParenToken(tkn)) {
|
|
4420
|
-
node.p.push(parseToken(tokenStream, parseState));
|
|
4421
|
-
tkn = asToken(tokenStream.tokens[parseState.position]);
|
|
4422
|
-
}
|
|
4423
|
-
parseState.position += 1;
|
|
4424
|
-
node.token = getTokenDebugData(firstToken) && firstToken;
|
|
4425
|
-
return node;
|
|
4426
|
-
},
|
|
4427
|
-
evaluate: function () { return null; },
|
|
4428
|
-
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4429
|
-
};
|
|
4430
|
-
|
|
4431
|
-
var condSpecialExpression = {
|
|
4432
|
-
parse: function (tokenStream, parseState, firstToken, _a) {
|
|
4410
|
+
function getCommonParser(name) {
|
|
4411
|
+
return function (tokenStream, parseState, firstToken, _a) {
|
|
4433
4412
|
var parseTokensUntilClosingBracket = _a.parseTokensUntilClosingBracket;
|
|
4434
4413
|
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
4435
4414
|
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
4436
|
-
|
|
4415
|
+
return {
|
|
4437
4416
|
t: exports.AstNodeType.SpecialExpression,
|
|
4438
|
-
n:
|
|
4417
|
+
n: name,
|
|
4439
4418
|
p: params,
|
|
4440
4419
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
4441
4420
|
};
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4421
|
+
};
|
|
4422
|
+
}
|
|
4423
|
+
|
|
4424
|
+
var commentSpecialExpression = {
|
|
4425
|
+
parse: getCommonParser('comment'),
|
|
4426
|
+
validateParameterCount: function () { return undefined; },
|
|
4427
|
+
evaluate: function () { return null; },
|
|
4428
|
+
findUnresolvedIdentifiers: function () { return new Set(); },
|
|
4429
|
+
};
|
|
4430
|
+
|
|
4431
|
+
var condSpecialExpression = {
|
|
4432
|
+
parse: getCommonParser('cond'),
|
|
4433
|
+
validateParameterCount: function (node) { return assertEvenNumberOfParams(node); },
|
|
4445
4434
|
evaluate: function (node, contextStack, _a) {
|
|
4446
4435
|
var e_1, _b;
|
|
4447
4436
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4470,19 +4459,8 @@ var Lits = (function (exports) {
|
|
|
4470
4459
|
};
|
|
4471
4460
|
|
|
4472
4461
|
var declaredSpecialExpression = {
|
|
4473
|
-
parse:
|
|
4474
|
-
|
|
4475
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
4476
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
4477
|
-
var node = {
|
|
4478
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
4479
|
-
n: 'declared?',
|
|
4480
|
-
p: params,
|
|
4481
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
4482
|
-
};
|
|
4483
|
-
assertNumberOfParams(1, node);
|
|
4484
|
-
return node;
|
|
4485
|
-
},
|
|
4462
|
+
parse: getCommonParser('declared?'),
|
|
4463
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
4486
4464
|
evaluate: function (node, contextStack) {
|
|
4487
4465
|
var lookUpResult = contextStack.lookUp(node.p[0]);
|
|
4488
4466
|
return lookUpResult !== null;
|
|
@@ -4528,9 +4506,9 @@ var Lits = (function (exports) {
|
|
|
4528
4506
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
4529
4507
|
};
|
|
4530
4508
|
assertSymbolNode(node.p[0], (_b = getTokenDebugData(node.token)) === null || _b === void 0 ? void 0 : _b.sourceCodeInfo);
|
|
4531
|
-
assertNumberOfParams(2, node);
|
|
4532
4509
|
return node;
|
|
4533
4510
|
},
|
|
4511
|
+
validateParameterCount: function (node) { return assertNumberOfParams(2, node); },
|
|
4534
4512
|
evaluate: function (node, contextStack, _a) {
|
|
4535
4513
|
var _b;
|
|
4536
4514
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4566,9 +4544,9 @@ var Lits = (function (exports) {
|
|
|
4566
4544
|
p: params,
|
|
4567
4545
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
4568
4546
|
};
|
|
4569
|
-
assertNumberOfParams(2, node);
|
|
4570
4547
|
return node;
|
|
4571
4548
|
},
|
|
4549
|
+
validateParameterCount: function (node) { return assertNumberOfParams(2, node); },
|
|
4572
4550
|
evaluate: function (node, contextStack, _a) {
|
|
4573
4551
|
var _b, _c;
|
|
4574
4552
|
var evaluateAstNode = _a.evaluateAstNode, builtin = _a.builtin;
|
|
@@ -4596,23 +4574,8 @@ var Lits = (function (exports) {
|
|
|
4596
4574
|
};
|
|
4597
4575
|
|
|
4598
4576
|
var doSpecialExpression = {
|
|
4599
|
-
parse:
|
|
4600
|
-
|
|
4601
|
-
var node = {
|
|
4602
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
4603
|
-
n: 'do',
|
|
4604
|
-
p: [],
|
|
4605
|
-
token: undefined,
|
|
4606
|
-
};
|
|
4607
|
-
var tkn = asToken(tokenStream.tokens[parseState.position]);
|
|
4608
|
-
while (!isRParenToken(tkn)) {
|
|
4609
|
-
node.p.push(parseToken(tokenStream, parseState));
|
|
4610
|
-
tkn = asToken(tokenStream.tokens[parseState.position]);
|
|
4611
|
-
}
|
|
4612
|
-
parseState.position += 1;
|
|
4613
|
-
node.token = getTokenDebugData(firstToken) && firstToken;
|
|
4614
|
-
return node;
|
|
4615
|
-
},
|
|
4577
|
+
parse: getCommonParser('do'),
|
|
4578
|
+
validateParameterCount: function () { return undefined; },
|
|
4616
4579
|
evaluate: function (node, contextStack, _a) {
|
|
4617
4580
|
var e_1, _b;
|
|
4618
4581
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -4689,6 +4652,7 @@ var Lits = (function (exports) {
|
|
|
4689
4652
|
};
|
|
4690
4653
|
return node;
|
|
4691
4654
|
},
|
|
4655
|
+
validateParameterCount: function () { return undefined; },
|
|
4692
4656
|
evaluate: function (node, contextStack, _a) {
|
|
4693
4657
|
var _b;
|
|
4694
4658
|
var _c, _d;
|
|
@@ -4730,6 +4694,7 @@ var Lits = (function (exports) {
|
|
|
4730
4694
|
};
|
|
4731
4695
|
return node;
|
|
4732
4696
|
},
|
|
4697
|
+
validateParameterCount: function () { return undefined; },
|
|
4733
4698
|
evaluate: function (node, contextStack, _a) {
|
|
4734
4699
|
var _b;
|
|
4735
4700
|
var _c, _d;
|
|
@@ -4773,6 +4738,7 @@ var Lits = (function (exports) {
|
|
|
4773
4738
|
};
|
|
4774
4739
|
return node;
|
|
4775
4740
|
},
|
|
4741
|
+
validateParameterCount: function () { return undefined; },
|
|
4776
4742
|
evaluate: function (node, contextStack, _a) {
|
|
4777
4743
|
var _b;
|
|
4778
4744
|
var _c;
|
|
@@ -5004,19 +4970,8 @@ var Lits = (function (exports) {
|
|
|
5004
4970
|
}
|
|
5005
4971
|
|
|
5006
4972
|
var ifSpecialExpression = {
|
|
5007
|
-
parse:
|
|
5008
|
-
|
|
5009
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5010
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5011
|
-
var node = {
|
|
5012
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5013
|
-
n: 'if',
|
|
5014
|
-
p: params,
|
|
5015
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5016
|
-
};
|
|
5017
|
-
assertNumberOfParams({ min: 2, max: 3 }, node);
|
|
5018
|
-
return node;
|
|
5019
|
-
},
|
|
4973
|
+
parse: getCommonParser('if'),
|
|
4974
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 2, max: 3 }, node); },
|
|
5020
4975
|
evaluate: function (node, contextStack, _a) {
|
|
5021
4976
|
var _b;
|
|
5022
4977
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5055,9 +5010,9 @@ var Lits = (function (exports) {
|
|
|
5055
5010
|
p: params,
|
|
5056
5011
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
5057
5012
|
};
|
|
5058
|
-
assertNumberOfParams({ min: 1, max: 2 }, node);
|
|
5059
5013
|
return node;
|
|
5060
5014
|
},
|
|
5015
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 1, max: 2 }, node); },
|
|
5061
5016
|
evaluate: function (node, contextStack, _a) {
|
|
5062
5017
|
var _b;
|
|
5063
5018
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5087,19 +5042,8 @@ var Lits = (function (exports) {
|
|
|
5087
5042
|
};
|
|
5088
5043
|
|
|
5089
5044
|
var ifNotSpecialExpression = {
|
|
5090
|
-
parse:
|
|
5091
|
-
|
|
5092
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5093
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5094
|
-
var node = {
|
|
5095
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5096
|
-
n: 'if-not',
|
|
5097
|
-
p: params,
|
|
5098
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5099
|
-
};
|
|
5100
|
-
assertNumberOfParams({ min: 2, max: 3 }, node);
|
|
5101
|
-
return node;
|
|
5102
|
-
},
|
|
5045
|
+
parse: getCommonParser('if-not'),
|
|
5046
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 2, max: 3 }, node); },
|
|
5103
5047
|
evaluate: function (node, contextStack, _a) {
|
|
5104
5048
|
var _b;
|
|
5105
5049
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5136,6 +5080,7 @@ var Lits = (function (exports) {
|
|
|
5136
5080
|
};
|
|
5137
5081
|
return node;
|
|
5138
5082
|
},
|
|
5083
|
+
validateParameterCount: function () { return undefined; },
|
|
5139
5084
|
evaluate: function (node, contextStack, _a) {
|
|
5140
5085
|
var e_1, _b, e_2, _c;
|
|
5141
5086
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5207,6 +5152,7 @@ var Lits = (function (exports) {
|
|
|
5207
5152
|
};
|
|
5208
5153
|
return node;
|
|
5209
5154
|
},
|
|
5155
|
+
validateParameterCount: function () { return undefined; },
|
|
5210
5156
|
evaluate: function (node, contextStack, _a) {
|
|
5211
5157
|
var _b;
|
|
5212
5158
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5470,9 +5416,9 @@ var Lits = (function (exports) {
|
|
|
5470
5416
|
p: params,
|
|
5471
5417
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
5472
5418
|
};
|
|
5473
|
-
assertNumberOfParams(1, node);
|
|
5474
5419
|
return node;
|
|
5475
5420
|
},
|
|
5421
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
5476
5422
|
evaluate: function (node, contextStack, helpers) { return evaluateLoop(true, node, contextStack, helpers.evaluateAstNode); },
|
|
5477
5423
|
findUnresolvedIdentifiers: function (node, contextStack, _a) {
|
|
5478
5424
|
var findUnresolvedIdentifiers = _a.findUnresolvedIdentifiers, builtin = _a.builtin;
|
|
@@ -5492,9 +5438,9 @@ var Lits = (function (exports) {
|
|
|
5492
5438
|
p: params,
|
|
5493
5439
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
5494
5440
|
};
|
|
5495
|
-
assertNumberOfParams(1, node);
|
|
5496
5441
|
return node;
|
|
5497
5442
|
},
|
|
5443
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
5498
5444
|
evaluate: function (node, contextStack, helpers) {
|
|
5499
5445
|
evaluateLoop(false, node, contextStack, helpers.evaluateAstNode);
|
|
5500
5446
|
return null;
|
|
@@ -5506,18 +5452,8 @@ var Lits = (function (exports) {
|
|
|
5506
5452
|
};
|
|
5507
5453
|
|
|
5508
5454
|
var orSpecialExpression = {
|
|
5509
|
-
parse:
|
|
5510
|
-
|
|
5511
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5512
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5513
|
-
var node = {
|
|
5514
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5515
|
-
n: 'or',
|
|
5516
|
-
p: params,
|
|
5517
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5518
|
-
};
|
|
5519
|
-
return node;
|
|
5520
|
-
},
|
|
5455
|
+
parse: getCommonParser('or'),
|
|
5456
|
+
validateParameterCount: function () { return undefined; },
|
|
5521
5457
|
evaluate: function (node, contextStack, _a) {
|
|
5522
5458
|
var e_1, _b;
|
|
5523
5459
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5546,19 +5482,8 @@ var Lits = (function (exports) {
|
|
|
5546
5482
|
};
|
|
5547
5483
|
|
|
5548
5484
|
var qqSpecialExpression = {
|
|
5549
|
-
parse:
|
|
5550
|
-
|
|
5551
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5552
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5553
|
-
var node = {
|
|
5554
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5555
|
-
n: '??',
|
|
5556
|
-
p: params,
|
|
5557
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5558
|
-
};
|
|
5559
|
-
assertNumberOfParams({ min: 1, max: 2 }, node);
|
|
5560
|
-
return node;
|
|
5561
|
-
},
|
|
5485
|
+
parse: getCommonParser('??'),
|
|
5486
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 1, max: 2 }, node); },
|
|
5562
5487
|
evaluate: function (node, contextStack, _a) {
|
|
5563
5488
|
var _b;
|
|
5564
5489
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5590,6 +5515,7 @@ var Lits = (function (exports) {
|
|
|
5590
5515
|
};
|
|
5591
5516
|
return node;
|
|
5592
5517
|
},
|
|
5518
|
+
validateParameterCount: function () { return undefined; },
|
|
5593
5519
|
evaluate: function (node, contextStack, _a) {
|
|
5594
5520
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5595
5521
|
var params = node.p.map(function (paramNode) { return evaluateAstNode(paramNode, contextStack); });
|
|
@@ -5602,19 +5528,8 @@ var Lits = (function (exports) {
|
|
|
5602
5528
|
};
|
|
5603
5529
|
|
|
5604
5530
|
var throwSpecialExpression = {
|
|
5605
|
-
parse:
|
|
5606
|
-
|
|
5607
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5608
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5609
|
-
var node = {
|
|
5610
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5611
|
-
n: 'throw',
|
|
5612
|
-
p: params,
|
|
5613
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5614
|
-
};
|
|
5615
|
-
assertNumberOfParams(1, node);
|
|
5616
|
-
return node;
|
|
5617
|
-
},
|
|
5531
|
+
parse: getCommonParser('throw'),
|
|
5532
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
5618
5533
|
evaluate: function (node, contextStack, _a) {
|
|
5619
5534
|
var _b, _c;
|
|
5620
5535
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5630,19 +5545,8 @@ var Lits = (function (exports) {
|
|
|
5630
5545
|
};
|
|
5631
5546
|
|
|
5632
5547
|
var timeSpecialExpression = {
|
|
5633
|
-
parse:
|
|
5634
|
-
|
|
5635
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5636
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5637
|
-
var node = {
|
|
5638
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5639
|
-
n: 'time!',
|
|
5640
|
-
p: params,
|
|
5641
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5642
|
-
};
|
|
5643
|
-
assertNumberOfParams(1, node);
|
|
5644
|
-
return node;
|
|
5645
|
-
},
|
|
5548
|
+
parse: getCommonParser('time!'),
|
|
5549
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
5646
5550
|
evaluate: function (node, contextStack, _a) {
|
|
5647
5551
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
5648
5552
|
var param = node.p[0];
|
|
@@ -5683,9 +5587,9 @@ var Lits = (function (exports) {
|
|
|
5683
5587
|
e: error,
|
|
5684
5588
|
token: getTokenDebugData(firstToken) && firstToken,
|
|
5685
5589
|
};
|
|
5686
|
-
assertNumberOfParams(1, node);
|
|
5687
5590
|
return node;
|
|
5688
5591
|
},
|
|
5592
|
+
validateParameterCount: function (node) { return assertNumberOfParams(1, node); },
|
|
5689
5593
|
evaluate: function (node, contextStack, _a) {
|
|
5690
5594
|
var _b;
|
|
5691
5595
|
var _c;
|
|
@@ -5715,19 +5619,8 @@ var Lits = (function (exports) {
|
|
|
5715
5619
|
};
|
|
5716
5620
|
|
|
5717
5621
|
var whenSpecialExpression = {
|
|
5718
|
-
parse:
|
|
5719
|
-
|
|
5720
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5721
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5722
|
-
var node = {
|
|
5723
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5724
|
-
n: 'when',
|
|
5725
|
-
p: params,
|
|
5726
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5727
|
-
};
|
|
5728
|
-
assertNumberOfParams({ min: 1 }, node);
|
|
5729
|
-
return node;
|
|
5730
|
-
},
|
|
5622
|
+
parse: getCommonParser('when'),
|
|
5623
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 1 }, node); },
|
|
5731
5624
|
evaluate: function (node, contextStack, _a) {
|
|
5732
5625
|
var e_1, _b;
|
|
5733
5626
|
var _c;
|
|
@@ -5777,6 +5670,7 @@ var Lits = (function (exports) {
|
|
|
5777
5670
|
};
|
|
5778
5671
|
return node;
|
|
5779
5672
|
},
|
|
5673
|
+
validateParameterCount: function () { return undefined; },
|
|
5780
5674
|
evaluate: function (node, contextStack, _a) {
|
|
5781
5675
|
var e_1, _b;
|
|
5782
5676
|
var _c;
|
|
@@ -5838,6 +5732,7 @@ var Lits = (function (exports) {
|
|
|
5838
5732
|
};
|
|
5839
5733
|
return node;
|
|
5840
5734
|
},
|
|
5735
|
+
validateParameterCount: function () { return undefined; },
|
|
5841
5736
|
evaluate: function (node, contextStack, _a) {
|
|
5842
5737
|
var e_1, _b;
|
|
5843
5738
|
var evaluateAstNode = _a.evaluateAstNode;
|
|
@@ -5876,19 +5771,8 @@ var Lits = (function (exports) {
|
|
|
5876
5771
|
};
|
|
5877
5772
|
|
|
5878
5773
|
var whenNotSpecialExpression = {
|
|
5879
|
-
parse:
|
|
5880
|
-
|
|
5881
|
-
var params = parseTokensUntilClosingBracket(tokenStream, parseState);
|
|
5882
|
-
assertRParenToken(tokenStream.tokens[parseState.position++]);
|
|
5883
|
-
var node = {
|
|
5884
|
-
t: exports.AstNodeType.SpecialExpression,
|
|
5885
|
-
n: 'when-not',
|
|
5886
|
-
p: params,
|
|
5887
|
-
token: getTokenDebugData(firstToken) && firstToken,
|
|
5888
|
-
};
|
|
5889
|
-
assertNumberOfParams({ min: 1 }, node);
|
|
5890
|
-
return node;
|
|
5891
|
-
},
|
|
5774
|
+
parse: getCommonParser('when-not'),
|
|
5775
|
+
validateParameterCount: function (node) { return assertNumberOfParams({ min: 1 }, node); },
|
|
5892
5776
|
evaluate: function (node, contextStack, _a) {
|
|
5893
5777
|
var e_1, _b;
|
|
5894
5778
|
var _c;
|
|
@@ -7488,7 +7372,7 @@ var Lits = (function (exports) {
|
|
|
7488
7372
|
};
|
|
7489
7373
|
};
|
|
7490
7374
|
AlgebraicParser.prototype.parseFunctionCall = function (symbol) {
|
|
7491
|
-
var _a, _b;
|
|
7375
|
+
var _a, _b, _c;
|
|
7492
7376
|
var params = [];
|
|
7493
7377
|
this.advance();
|
|
7494
7378
|
while (!this.isAtEnd() && !isRParenToken(this.peek())) {
|
|
@@ -7520,13 +7404,17 @@ var Lits = (function (exports) {
|
|
|
7520
7404
|
case 'when':
|
|
7521
7405
|
case 'when-not':
|
|
7522
7406
|
case 'do':
|
|
7523
|
-
case '
|
|
7524
|
-
|
|
7407
|
+
case 'time!':
|
|
7408
|
+
case 'throw': {
|
|
7409
|
+
var node_1 = {
|
|
7525
7410
|
t: exports.AstNodeType.SpecialExpression,
|
|
7526
7411
|
n: name_1,
|
|
7527
7412
|
p: params,
|
|
7528
7413
|
token: getTokenDebugData(symbol.token) && symbol.token,
|
|
7529
7414
|
};
|
|
7415
|
+
builtin.specialExpressions[node_1.n].validateParameterCount(node_1);
|
|
7416
|
+
return node_1;
|
|
7417
|
+
}
|
|
7530
7418
|
case 'def':
|
|
7531
7419
|
case 'defs':
|
|
7532
7420
|
case 'let':
|
|
@@ -7539,7 +7427,6 @@ var Lits = (function (exports) {
|
|
|
7539
7427
|
case 'try':
|
|
7540
7428
|
case 'recur':
|
|
7541
7429
|
case 'loop':
|
|
7542
|
-
case 'time!':
|
|
7543
7430
|
case 'doseq':
|
|
7544
7431
|
case 'for':
|
|
7545
7432
|
throw new Error("Special expression ".concat(name_1, " is not available in algebraic notation"));
|
|
@@ -7547,7 +7434,12 @@ var Lits = (function (exports) {
|
|
|
7547
7434
|
throw new Error("Unknown special expression: ".concat(name_1));
|
|
7548
7435
|
}
|
|
7549
7436
|
}
|
|
7550
|
-
|
|
7437
|
+
var node = createNamedNormalExpressionNode(symbol.v, params, symbol.token);
|
|
7438
|
+
var builtinExpression = builtin.normalExpressions[node.n];
|
|
7439
|
+
if (builtinExpression) {
|
|
7440
|
+
(_c = builtinExpression.validate) === null || _c === void 0 ? void 0 : _c.call(builtinExpression, __assign(__assign({}, node), { p: withoutCommentNodes(node.p) }));
|
|
7441
|
+
}
|
|
7442
|
+
return node;
|
|
7551
7443
|
}
|
|
7552
7444
|
else {
|
|
7553
7445
|
return {
|
|
@@ -7916,7 +7808,7 @@ var Lits = (function (exports) {
|
|
|
7916
7808
|
var firstToken = asLParenToken(tokenStream.tokens[parseState.position++]);
|
|
7917
7809
|
var nameToken = asP_SymbolToken(tokenStream.tokens[parseState.position++]);
|
|
7918
7810
|
var expressionName = nameToken[1];
|
|
7919
|
-
var
|
|
7811
|
+
var _b = asNonUndefined(builtin.specialExpressions[expressionName], (_a = getTokenDebugData(nameToken)) === null || _a === void 0 ? void 0 : _a.sourceCodeInfo), parse = _b.parse, validateParameterCount = _b.validateParameterCount;
|
|
7920
7812
|
var node = parse(tokenStream, parseState, firstToken, {
|
|
7921
7813
|
parseExpression: parseExpression,
|
|
7922
7814
|
parseTokensUntilClosingBracket: parseTokensUntilClosingBracket,
|
|
@@ -7925,6 +7817,7 @@ var Lits = (function (exports) {
|
|
|
7925
7817
|
parseBindings: parseBindings,
|
|
7926
7818
|
parseArgument: parseArgument,
|
|
7927
7819
|
});
|
|
7820
|
+
validateParameterCount(node);
|
|
7928
7821
|
return node;
|
|
7929
7822
|
}
|
|
7930
7823
|
function parsePolishToken(tokenStream, parseState) {
|