gobstones-code-runner 0.5.4 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/htmls/gobstones-code-runner.html +227 -70
- data/lib/gobstones/code-runner/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd4d6e14b4c9d319c5aac21edc4bbdc650ef33c7a3cc8e21d84e9289fb76945b
|
4
|
+
data.tar.gz: 2b0b1dbae7ea6ff8e1d072c2d7d3604f555fe728f3b26e9e0dfe6bebef6f8711
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d88527faa85751e22ec962217ffd9ac4ed314df55d4053532ee1ce619bd24a5f242896a9925d264fb61cf3c78cf489bf0810f8184026f4f0d3f31d5121822258
|
7
|
+
data.tar.gz: de88f8d3e46319c3af98bb97d2e8db4a0d20051a0f95ef6be858716aa2213a1655f1f7911cff89346eaf1df79001ec549922e35913306943faa2e366e1f577ab
|
@@ -4472,7 +4472,7 @@ var GbsRuntimeError = exports.GbsRuntimeError = function (_GbsInterpreterExcept3
|
|
4472
4472
|
Object.defineProperty(exports, "__esModule", {
|
4473
4473
|
value: true
|
4474
4474
|
});
|
4475
|
-
exports.ASTConstructorDeclaration = exports.ASTFieldBinding = exports.ASTExprFunctionCall = exports.ASTExprStructureUpdate = exports.ASTExprStructure = exports.ASTExprTuple = exports.ASTExprRange = exports.ASTExprList = exports.ASTExprChoose = exports.ASTExprConstantString = exports.ASTExprConstantNumber = exports.ASTExprVariable = exports.ASTPatternTimeout = exports.ASTPatternTuple = exports.ASTPatternStructure = exports.ASTPatternNumber = exports.ASTPatternVariable = exports.ASTPatternWildcard = exports.ASTStmtProcedureCall = exports.ASTStmtAssignTuple = exports.ASTStmtAssignVariable = exports.ASTSwitchBranch = exports.ASTStmtSwitch = exports.ASTStmtWhile = exports.ASTStmtForeach = exports.ASTStmtRepeat = exports.ASTStmtIf = exports.ASTStmtReturn = exports.ASTStmtBlock = exports.ASTDefType = exports.ASTDefFunction = exports.ASTDefProcedure = exports.ASTDefInteractiveProgram = exports.ASTDefProgram = exports.ASTMain = exports.ASTNode = exports.N_ConstructorDeclaration = exports.N_FieldBinding = exports.N_SwitchBranch = exports.N_ExprFunctionCall = exports.N_ExprStructureUpdate = exports.N_ExprStructure = exports.N_ExprTuple = exports.N_ExprRange = exports.N_ExprList = exports.N_ExprChoose = exports.N_ExprConstantString = exports.N_ExprConstantNumber = exports.N_ExprVariable = exports.N_PatternTimeout = exports.N_PatternTuple = exports.N_PatternStructure = exports.N_PatternNumber = exports.N_PatternVariable = exports.N_PatternWildcard = exports.N_StmtProcedureCall = exports.N_StmtAssignTuple = exports.N_StmtAssignVariable = exports.N_StmtSwitch = exports.N_StmtWhile = exports.N_StmtForeach = exports.N_StmtRepeat = exports.N_StmtIf = exports.N_StmtReturn = exports.N_StmtBlock = exports.N_DefType = exports.N_DefFunction = exports.N_DefProcedure = exports.N_DefInteractiveProgram = exports.N_DefProgram = exports.N_Main = undefined;
|
4475
|
+
exports.ASTConstructorDeclaration = exports.ASTFieldBinding = exports.ASTExprFunctionCall = exports.ASTExprStructureUpdate = exports.ASTExprStructure = exports.ASTExprTuple = exports.ASTExprRange = exports.ASTExprList = exports.ASTExprMatching = exports.ASTExprChoose = exports.ASTExprConstantString = exports.ASTExprConstantNumber = exports.ASTExprVariable = exports.ASTPatternTimeout = exports.ASTPatternTuple = exports.ASTPatternStructure = exports.ASTPatternNumber = exports.ASTPatternVariable = exports.ASTPatternWildcard = exports.ASTStmtProcedureCall = exports.ASTStmtAssignTuple = exports.ASTStmtAssignVariable = exports.ASTMatchingBranch = exports.ASTSwitchBranch = exports.ASTStmtSwitch = exports.ASTStmtWhile = exports.ASTStmtForeach = exports.ASTStmtRepeat = exports.ASTStmtIf = exports.ASTStmtReturn = exports.ASTStmtBlock = exports.ASTDefType = exports.ASTDefFunction = exports.ASTDefProcedure = exports.ASTDefInteractiveProgram = exports.ASTDefProgram = exports.ASTMain = exports.ASTNode = exports.N_ConstructorDeclaration = exports.N_FieldBinding = exports.N_MatchingBranch = exports.N_SwitchBranch = exports.N_ExprFunctionCall = exports.N_ExprStructureUpdate = exports.N_ExprStructure = exports.N_ExprTuple = exports.N_ExprRange = exports.N_ExprList = exports.N_ExprMatching = exports.N_ExprChoose = exports.N_ExprConstantString = exports.N_ExprConstantNumber = exports.N_ExprVariable = exports.N_PatternTimeout = exports.N_PatternTuple = exports.N_PatternStructure = exports.N_PatternNumber = exports.N_PatternVariable = exports.N_PatternWildcard = exports.N_StmtProcedureCall = exports.N_StmtAssignTuple = exports.N_StmtAssignVariable = exports.N_StmtSwitch = exports.N_StmtWhile = exports.N_StmtForeach = exports.N_StmtRepeat = exports.N_StmtIf = exports.N_StmtReturn = exports.N_StmtBlock = exports.N_DefType = exports.N_DefFunction = exports.N_DefProcedure = exports.N_DefInteractiveProgram = exports.N_DefProgram = exports.N_Main = undefined;
|
4476
4476
|
|
4477
4477
|
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
4478
4478
|
|
@@ -4516,6 +4516,7 @@ var N_ExprVariable = exports.N_ExprVariable = Symbol.for('N_ExprVariable');
|
|
4516
4516
|
var N_ExprConstantNumber = exports.N_ExprConstantNumber = Symbol.for('N_ExprConstantNumber');
|
4517
4517
|
var N_ExprConstantString = exports.N_ExprConstantString = Symbol.for('N_ExprConstantString');
|
4518
4518
|
var N_ExprChoose = exports.N_ExprChoose = Symbol.for('N_ExprChoose');
|
4519
|
+
var N_ExprMatching = exports.N_ExprMatching = Symbol.for('N_ExprMatching');
|
4519
4520
|
var N_ExprList = exports.N_ExprList = Symbol.for('N_ExprList');
|
4520
4521
|
var N_ExprRange = exports.N_ExprRange = Symbol.for('N_ExprRange');
|
4521
4522
|
var N_ExprTuple = exports.N_ExprTuple = Symbol.for('N_ExprTuple');
|
@@ -4524,6 +4525,8 @@ var N_ExprStructureUpdate = exports.N_ExprStructureUpdate = Symbol.for('N_ExprSt
|
|
4524
4525
|
var N_ExprFunctionCall = exports.N_ExprFunctionCall = Symbol.for('N_ExprFunctionCall');
|
4525
4526
|
/* SwitchBranch: pattern -> body */
|
4526
4527
|
var N_SwitchBranch = exports.N_SwitchBranch = Symbol.for('N_SwitchBranch');
|
4528
|
+
/* MatchingBranch: pattern -> body */
|
4529
|
+
var N_MatchingBranch = exports.N_MatchingBranch = Symbol.for('N_MatchingBranch');
|
4527
4530
|
/* FieldBinding: fieldName <- value */
|
4528
4531
|
var N_FieldBinding = exports.N_FieldBinding = Symbol.for('N_FieldBinding');
|
4529
4532
|
/* ConstructorDeclaration */
|
@@ -5032,8 +5035,32 @@ var ASTSwitchBranch = exports.ASTSwitchBranch = function (_ASTNode14) {
|
|
5032
5035
|
return ASTSwitchBranch;
|
5033
5036
|
}(ASTNode);
|
5034
5037
|
|
5035
|
-
var
|
5036
|
-
_inherits(
|
5038
|
+
var ASTMatchingBranch = exports.ASTMatchingBranch = function (_ASTNode15) {
|
5039
|
+
_inherits(ASTMatchingBranch, _ASTNode15);
|
5040
|
+
|
5041
|
+
function ASTMatchingBranch(pattern, body) {
|
5042
|
+
_classCallCheck(this, ASTMatchingBranch);
|
5043
|
+
|
5044
|
+
return _possibleConstructorReturn(this, (ASTMatchingBranch.__proto__ || Object.getPrototypeOf(ASTMatchingBranch)).call(this, N_MatchingBranch, [pattern, body]));
|
5045
|
+
}
|
5046
|
+
|
5047
|
+
_createClass(ASTMatchingBranch, [{
|
5048
|
+
key: 'pattern',
|
5049
|
+
get: function get() {
|
5050
|
+
return this._children[0];
|
5051
|
+
}
|
5052
|
+
}, {
|
5053
|
+
key: 'body',
|
5054
|
+
get: function get() {
|
5055
|
+
return this._children[1];
|
5056
|
+
}
|
5057
|
+
}]);
|
5058
|
+
|
5059
|
+
return ASTMatchingBranch;
|
5060
|
+
}(ASTNode);
|
5061
|
+
|
5062
|
+
var ASTStmtAssignVariable = exports.ASTStmtAssignVariable = function (_ASTNode16) {
|
5063
|
+
_inherits(ASTStmtAssignVariable, _ASTNode16);
|
5037
5064
|
|
5038
5065
|
function ASTStmtAssignVariable(variable, value) {
|
5039
5066
|
_classCallCheck(this, ASTStmtAssignVariable);
|
@@ -5056,8 +5083,8 @@ var ASTStmtAssignVariable = exports.ASTStmtAssignVariable = function (_ASTNode15
|
|
5056
5083
|
return ASTStmtAssignVariable;
|
5057
5084
|
}(ASTNode);
|
5058
5085
|
|
5059
|
-
var ASTStmtAssignTuple = exports.ASTStmtAssignTuple = function (
|
5060
|
-
_inherits(ASTStmtAssignTuple,
|
5086
|
+
var ASTStmtAssignTuple = exports.ASTStmtAssignTuple = function (_ASTNode17) {
|
5087
|
+
_inherits(ASTStmtAssignTuple, _ASTNode17);
|
5061
5088
|
|
5062
5089
|
function ASTStmtAssignTuple(variables, value) {
|
5063
5090
|
_classCallCheck(this, ASTStmtAssignTuple);
|
@@ -5080,8 +5107,8 @@ var ASTStmtAssignTuple = exports.ASTStmtAssignTuple = function (_ASTNode16) {
|
|
5080
5107
|
return ASTStmtAssignTuple;
|
5081
5108
|
}(ASTNode);
|
5082
5109
|
|
5083
|
-
var ASTStmtProcedureCall = exports.ASTStmtProcedureCall = function (
|
5084
|
-
_inherits(ASTStmtProcedureCall,
|
5110
|
+
var ASTStmtProcedureCall = exports.ASTStmtProcedureCall = function (_ASTNode18) {
|
5111
|
+
_inherits(ASTStmtProcedureCall, _ASTNode18);
|
5085
5112
|
|
5086
5113
|
function ASTStmtProcedureCall(procedureName, args) {
|
5087
5114
|
_classCallCheck(this, ASTStmtProcedureCall);
|
@@ -5106,8 +5133,8 @@ var ASTStmtProcedureCall = exports.ASTStmtProcedureCall = function (_ASTNode17)
|
|
5106
5133
|
|
5107
5134
|
/* Patterns */
|
5108
5135
|
|
5109
|
-
var ASTPatternWildcard = exports.ASTPatternWildcard = function (
|
5110
|
-
_inherits(ASTPatternWildcard,
|
5136
|
+
var ASTPatternWildcard = exports.ASTPatternWildcard = function (_ASTNode19) {
|
5137
|
+
_inherits(ASTPatternWildcard, _ASTNode19);
|
5111
5138
|
|
5112
5139
|
function ASTPatternWildcard() {
|
5113
5140
|
_classCallCheck(this, ASTPatternWildcard);
|
@@ -5125,8 +5152,8 @@ var ASTPatternWildcard = exports.ASTPatternWildcard = function (_ASTNode18) {
|
|
5125
5152
|
return ASTPatternWildcard;
|
5126
5153
|
}(ASTNode);
|
5127
5154
|
|
5128
|
-
var ASTPatternVariable = exports.ASTPatternVariable = function (
|
5129
|
-
_inherits(ASTPatternVariable,
|
5155
|
+
var ASTPatternVariable = exports.ASTPatternVariable = function (_ASTNode20) {
|
5156
|
+
_inherits(ASTPatternVariable, _ASTNode20);
|
5130
5157
|
|
5131
5158
|
function ASTPatternVariable(variableName) {
|
5132
5159
|
_classCallCheck(this, ASTPatternVariable);
|
@@ -5149,8 +5176,8 @@ var ASTPatternVariable = exports.ASTPatternVariable = function (_ASTNode19) {
|
|
5149
5176
|
return ASTPatternVariable;
|
5150
5177
|
}(ASTNode);
|
5151
5178
|
|
5152
|
-
var ASTPatternNumber = exports.ASTPatternNumber = function (
|
5153
|
-
_inherits(ASTPatternNumber,
|
5179
|
+
var ASTPatternNumber = exports.ASTPatternNumber = function (_ASTNode21) {
|
5180
|
+
_inherits(ASTPatternNumber, _ASTNode21);
|
5154
5181
|
|
5155
5182
|
function ASTPatternNumber(number) {
|
5156
5183
|
_classCallCheck(this, ASTPatternNumber);
|
@@ -5173,8 +5200,8 @@ var ASTPatternNumber = exports.ASTPatternNumber = function (_ASTNode20) {
|
|
5173
5200
|
return ASTPatternNumber;
|
5174
5201
|
}(ASTNode);
|
5175
5202
|
|
5176
|
-
var ASTPatternStructure = exports.ASTPatternStructure = function (
|
5177
|
-
_inherits(ASTPatternStructure,
|
5203
|
+
var ASTPatternStructure = exports.ASTPatternStructure = function (_ASTNode22) {
|
5204
|
+
_inherits(ASTPatternStructure, _ASTNode22);
|
5178
5205
|
|
5179
5206
|
function ASTPatternStructure(constructorName, parameters) {
|
5180
5207
|
_classCallCheck(this, ASTPatternStructure);
|
@@ -5197,8 +5224,8 @@ var ASTPatternStructure = exports.ASTPatternStructure = function (_ASTNode21) {
|
|
5197
5224
|
return ASTPatternStructure;
|
5198
5225
|
}(ASTNode);
|
5199
5226
|
|
5200
|
-
var ASTPatternTuple = exports.ASTPatternTuple = function (
|
5201
|
-
_inherits(ASTPatternTuple,
|
5227
|
+
var ASTPatternTuple = exports.ASTPatternTuple = function (_ASTNode23) {
|
5228
|
+
_inherits(ASTPatternTuple, _ASTNode23);
|
5202
5229
|
|
5203
5230
|
function ASTPatternTuple(parameters) {
|
5204
5231
|
_classCallCheck(this, ASTPatternTuple);
|
@@ -5216,8 +5243,8 @@ var ASTPatternTuple = exports.ASTPatternTuple = function (_ASTNode22) {
|
|
5216
5243
|
return ASTPatternTuple;
|
5217
5244
|
}(ASTNode);
|
5218
5245
|
|
5219
|
-
var ASTPatternTimeout = exports.ASTPatternTimeout = function (
|
5220
|
-
_inherits(ASTPatternTimeout,
|
5246
|
+
var ASTPatternTimeout = exports.ASTPatternTimeout = function (_ASTNode24) {
|
5247
|
+
_inherits(ASTPatternTimeout, _ASTNode24);
|
5221
5248
|
|
5222
5249
|
function ASTPatternTimeout(timeout) {
|
5223
5250
|
_classCallCheck(this, ASTPatternTimeout);
|
@@ -5242,8 +5269,8 @@ var ASTPatternTimeout = exports.ASTPatternTimeout = function (_ASTNode23) {
|
|
5242
5269
|
|
5243
5270
|
/* Expressions */
|
5244
5271
|
|
5245
|
-
var ASTExprVariable = exports.ASTExprVariable = function (
|
5246
|
-
_inherits(ASTExprVariable,
|
5272
|
+
var ASTExprVariable = exports.ASTExprVariable = function (_ASTNode25) {
|
5273
|
+
_inherits(ASTExprVariable, _ASTNode25);
|
5247
5274
|
|
5248
5275
|
function ASTExprVariable(variableName) {
|
5249
5276
|
_classCallCheck(this, ASTExprVariable);
|
@@ -5261,8 +5288,8 @@ var ASTExprVariable = exports.ASTExprVariable = function (_ASTNode24) {
|
|
5261
5288
|
return ASTExprVariable;
|
5262
5289
|
}(ASTNode);
|
5263
5290
|
|
5264
|
-
var ASTExprConstantNumber = exports.ASTExprConstantNumber = function (
|
5265
|
-
_inherits(ASTExprConstantNumber,
|
5291
|
+
var ASTExprConstantNumber = exports.ASTExprConstantNumber = function (_ASTNode26) {
|
5292
|
+
_inherits(ASTExprConstantNumber, _ASTNode26);
|
5266
5293
|
|
5267
5294
|
function ASTExprConstantNumber(number) {
|
5268
5295
|
_classCallCheck(this, ASTExprConstantNumber);
|
@@ -5280,8 +5307,8 @@ var ASTExprConstantNumber = exports.ASTExprConstantNumber = function (_ASTNode25
|
|
5280
5307
|
return ASTExprConstantNumber;
|
5281
5308
|
}(ASTNode);
|
5282
5309
|
|
5283
|
-
var ASTExprConstantString = exports.ASTExprConstantString = function (
|
5284
|
-
_inherits(ASTExprConstantString,
|
5310
|
+
var ASTExprConstantString = exports.ASTExprConstantString = function (_ASTNode27) {
|
5311
|
+
_inherits(ASTExprConstantString, _ASTNode27);
|
5285
5312
|
|
5286
5313
|
function ASTExprConstantString(string) {
|
5287
5314
|
_classCallCheck(this, ASTExprConstantString);
|
@@ -5299,8 +5326,8 @@ var ASTExprConstantString = exports.ASTExprConstantString = function (_ASTNode26
|
|
5299
5326
|
return ASTExprConstantString;
|
5300
5327
|
}(ASTNode);
|
5301
5328
|
|
5302
|
-
var ASTExprChoose = exports.ASTExprChoose = function (
|
5303
|
-
_inherits(ASTExprChoose,
|
5329
|
+
var ASTExprChoose = exports.ASTExprChoose = function (_ASTNode28) {
|
5330
|
+
_inherits(ASTExprChoose, _ASTNode28);
|
5304
5331
|
|
5305
5332
|
function ASTExprChoose(condition, trueExpr, falseExpr) {
|
5306
5333
|
_classCallCheck(this, ASTExprChoose);
|
@@ -5328,8 +5355,32 @@ var ASTExprChoose = exports.ASTExprChoose = function (_ASTNode27) {
|
|
5328
5355
|
return ASTExprChoose;
|
5329
5356
|
}(ASTNode);
|
5330
5357
|
|
5331
|
-
var
|
5332
|
-
_inherits(
|
5358
|
+
var ASTExprMatching = exports.ASTExprMatching = function (_ASTNode29) {
|
5359
|
+
_inherits(ASTExprMatching, _ASTNode29);
|
5360
|
+
|
5361
|
+
function ASTExprMatching(subject, branches) {
|
5362
|
+
_classCallCheck(this, ASTExprMatching);
|
5363
|
+
|
5364
|
+
return _possibleConstructorReturn(this, (ASTExprMatching.__proto__ || Object.getPrototypeOf(ASTExprMatching)).call(this, N_ExprMatching, [subject, branches]));
|
5365
|
+
}
|
5366
|
+
|
5367
|
+
_createClass(ASTExprMatching, [{
|
5368
|
+
key: 'subject',
|
5369
|
+
get: function get() {
|
5370
|
+
return this._children[0];
|
5371
|
+
}
|
5372
|
+
}, {
|
5373
|
+
key: 'branches',
|
5374
|
+
get: function get() {
|
5375
|
+
return this._children[1];
|
5376
|
+
}
|
5377
|
+
}]);
|
5378
|
+
|
5379
|
+
return ASTExprMatching;
|
5380
|
+
}(ASTNode);
|
5381
|
+
|
5382
|
+
var ASTExprList = exports.ASTExprList = function (_ASTNode30) {
|
5383
|
+
_inherits(ASTExprList, _ASTNode30);
|
5333
5384
|
|
5334
5385
|
function ASTExprList(elements) {
|
5335
5386
|
_classCallCheck(this, ASTExprList);
|
@@ -5347,8 +5398,8 @@ var ASTExprList = exports.ASTExprList = function (_ASTNode28) {
|
|
5347
5398
|
return ASTExprList;
|
5348
5399
|
}(ASTNode);
|
5349
5400
|
|
5350
|
-
var ASTExprRange = exports.ASTExprRange = function (
|
5351
|
-
_inherits(ASTExprRange,
|
5401
|
+
var ASTExprRange = exports.ASTExprRange = function (_ASTNode31) {
|
5402
|
+
_inherits(ASTExprRange, _ASTNode31);
|
5352
5403
|
|
5353
5404
|
// Note: second may be null
|
5354
5405
|
function ASTExprRange(first, second, last) {
|
@@ -5377,8 +5428,8 @@ var ASTExprRange = exports.ASTExprRange = function (_ASTNode29) {
|
|
5377
5428
|
return ASTExprRange;
|
5378
5429
|
}(ASTNode);
|
5379
5430
|
|
5380
|
-
var ASTExprTuple = exports.ASTExprTuple = function (
|
5381
|
-
_inherits(ASTExprTuple,
|
5431
|
+
var ASTExprTuple = exports.ASTExprTuple = function (_ASTNode32) {
|
5432
|
+
_inherits(ASTExprTuple, _ASTNode32);
|
5382
5433
|
|
5383
5434
|
function ASTExprTuple(elements) {
|
5384
5435
|
_classCallCheck(this, ASTExprTuple);
|
@@ -5396,8 +5447,8 @@ var ASTExprTuple = exports.ASTExprTuple = function (_ASTNode30) {
|
|
5396
5447
|
return ASTExprTuple;
|
5397
5448
|
}(ASTNode);
|
5398
5449
|
|
5399
|
-
var ASTExprStructure = exports.ASTExprStructure = function (
|
5400
|
-
_inherits(ASTExprStructure,
|
5450
|
+
var ASTExprStructure = exports.ASTExprStructure = function (_ASTNode33) {
|
5451
|
+
_inherits(ASTExprStructure, _ASTNode33);
|
5401
5452
|
|
5402
5453
|
function ASTExprStructure(constructorName, fieldBindings) {
|
5403
5454
|
_classCallCheck(this, ASTExprStructure);
|
@@ -5451,8 +5502,8 @@ var ASTExprStructure = exports.ASTExprStructure = function (_ASTNode31) {
|
|
5451
5502
|
return ASTExprStructure;
|
5452
5503
|
}(ASTNode);
|
5453
5504
|
|
5454
|
-
var ASTExprStructureUpdate = exports.ASTExprStructureUpdate = function (
|
5455
|
-
_inherits(ASTExprStructureUpdate,
|
5505
|
+
var ASTExprStructureUpdate = exports.ASTExprStructureUpdate = function (_ASTNode34) {
|
5506
|
+
_inherits(ASTExprStructureUpdate, _ASTNode34);
|
5456
5507
|
|
5457
5508
|
function ASTExprStructureUpdate(constructorName, original, fieldBindings) {
|
5458
5509
|
_classCallCheck(this, ASTExprStructureUpdate);
|
@@ -5511,8 +5562,8 @@ var ASTExprStructureUpdate = exports.ASTExprStructureUpdate = function (_ASTNode
|
|
5511
5562
|
return ASTExprStructureUpdate;
|
5512
5563
|
}(ASTNode);
|
5513
5564
|
|
5514
|
-
var ASTExprFunctionCall = exports.ASTExprFunctionCall = function (
|
5515
|
-
_inherits(ASTExprFunctionCall,
|
5565
|
+
var ASTExprFunctionCall = exports.ASTExprFunctionCall = function (_ASTNode35) {
|
5566
|
+
_inherits(ASTExprFunctionCall, _ASTNode35);
|
5516
5567
|
|
5517
5568
|
function ASTExprFunctionCall(functionName, args) {
|
5518
5569
|
_classCallCheck(this, ASTExprFunctionCall);
|
@@ -5535,8 +5586,8 @@ var ASTExprFunctionCall = exports.ASTExprFunctionCall = function (_ASTNode33) {
|
|
5535
5586
|
return ASTExprFunctionCall;
|
5536
5587
|
}(ASTNode);
|
5537
5588
|
|
5538
|
-
var ASTFieldBinding = exports.ASTFieldBinding = function (
|
5539
|
-
_inherits(ASTFieldBinding,
|
5589
|
+
var ASTFieldBinding = exports.ASTFieldBinding = function (_ASTNode36) {
|
5590
|
+
_inherits(ASTFieldBinding, _ASTNode36);
|
5540
5591
|
|
5541
5592
|
function ASTFieldBinding(fieldName, value) {
|
5542
5593
|
_classCallCheck(this, ASTFieldBinding);
|
@@ -5559,8 +5610,8 @@ var ASTFieldBinding = exports.ASTFieldBinding = function (_ASTNode34) {
|
|
5559
5610
|
return ASTFieldBinding;
|
5560
5611
|
}(ASTNode);
|
5561
5612
|
|
5562
|
-
var ASTConstructorDeclaration = exports.ASTConstructorDeclaration = function (
|
5563
|
-
_inherits(ASTConstructorDeclaration,
|
5613
|
+
var ASTConstructorDeclaration = exports.ASTConstructorDeclaration = function (_ASTNode37) {
|
5614
|
+
_inherits(ASTConstructorDeclaration, _ASTNode37);
|
5564
5615
|
|
5565
5616
|
function ASTConstructorDeclaration(constructorName, fieldNames) {
|
5566
5617
|
_classCallCheck(this, ASTConstructorDeclaration);
|
@@ -5618,6 +5669,9 @@ var T_ELSE = exports.T_ELSE = Symbol.for('T_ELSE');
|
|
5618
5669
|
var T_CHOOSE = exports.T_CHOOSE = Symbol.for('T_CHOOSE');
|
5619
5670
|
var T_WHEN = exports.T_WHEN = Symbol.for('T_WHEN');
|
5620
5671
|
var T_OTHERWISE = exports.T_OTHERWISE = Symbol.for('T_OTHERWISE');
|
5672
|
+
var T_MATCHING = exports.T_MATCHING = Symbol.for('T_MATCHING');
|
5673
|
+
var T_SELECT = exports.T_SELECT = Symbol.for('T_SELECT');
|
5674
|
+
var T_ON = exports.T_ON = Symbol.for('T_ON');
|
5621
5675
|
var T_REPEAT = exports.T_REPEAT = Symbol.for('T_REPEAT');
|
5622
5676
|
var T_FOREACH = exports.T_FOREACH = Symbol.for('T_FOREACH');
|
5623
5677
|
var T_IN = exports.T_IN = Symbol.for('T_IN');
|
@@ -8840,6 +8894,12 @@ var LOCALE_ES = exports.LOCALE_ES = {
|
|
8840
8894
|
'T_MOD': keyword('mod'),
|
8841
8895
|
'T_TYPE': keyword('type'),
|
8842
8896
|
'T_IS': keyword('is'),
|
8897
|
+
'T_CHOOSE': keyword('choose'),
|
8898
|
+
'T_WHEN': keyword('when'),
|
8899
|
+
'T_OTHERWISE': keyword('otherwise'),
|
8900
|
+
'T_MATCHING': keyword('matching'),
|
8901
|
+
'T_SELECT': keyword('select'),
|
8902
|
+
'T_ON': keyword('on'),
|
8843
8903
|
'T_RECORD': keyword('record'),
|
8844
8904
|
'T_VARIANT': keyword('variant'),
|
8845
8905
|
'T_CASE': keyword('case'),
|
@@ -9033,10 +9093,10 @@ var LOCALE_ES = exports.LOCALE_ES = {
|
|
9033
9093
|
return 'El constructor "' + name + '" no está definido.';
|
9034
9094
|
},
|
9035
9095
|
|
9036
|
-
'errmsg:wildcard-pattern-should-be-last': 'El comodín "_"
|
9096
|
+
'errmsg:wildcard-pattern-should-be-last': 'El comodín "_" debe estar en la última rama.',
|
9037
9097
|
|
9038
9098
|
'errmsg:variable-pattern-should-be-last': function errmsgVariablePatternShouldBeLast(name) {
|
9039
|
-
return 'El patrón variable "' + name + '" tiene
|
9099
|
+
return 'El patrón variable "' + name + '" tiene debe estar en la última rama.';
|
9040
9100
|
},
|
9041
9101
|
|
9042
9102
|
'errmsg:numeric-pattern-repeats-number': function errmsgNumericPatternRepeatsNumber(number) {
|
@@ -9059,7 +9119,7 @@ var LOCALE_ES = exports.LOCALE_ES = {
|
|
9059
9119
|
|
9060
9120
|
'errmsg:patterns-in-interactive-program-must-be-events': 'Los patrones de un "interactive program" deben ser eventos.',
|
9061
9121
|
|
9062
|
-
'errmsg:patterns-in-switch-must-not-be-events': '
|
9122
|
+
'errmsg:patterns-in-switch-must-not-be-events': 'El patrón no puede ser un evento.',
|
9063
9123
|
|
9064
9124
|
'errmsg:structure-construction-repeated-field': function errmsgStructureConstructionRepeatedField(constructorName, fieldName) {
|
9065
9125
|
return 'El campo "' + fieldName + '" está repetido en ' + 'la instanciación del constructor "' + constructorName + '".';
|
@@ -14480,6 +14540,8 @@ var Parser = exports.Parser = function () {
|
|
14480
14540
|
return this._parseExprConstantString();
|
14481
14541
|
case _token.T_CHOOSE:
|
14482
14542
|
return this._parseExprChoose(true /* expectInitialChoose */);
|
14543
|
+
case _token.T_MATCHING:
|
14544
|
+
return this._parseExprMatching();
|
14483
14545
|
case _token.T_UPPERID:
|
14484
14546
|
return this._parseExprStructureOrStructureUpdate();
|
14485
14547
|
case _token.T_LPAREN:
|
@@ -14566,6 +14628,21 @@ var Parser = exports.Parser = function () {
|
|
14566
14628
|
return expr1;
|
14567
14629
|
}
|
14568
14630
|
}
|
14631
|
+
}, {
|
14632
|
+
key: '_parseExprMatching',
|
14633
|
+
value: function _parseExprMatching() {
|
14634
|
+
var startPos = this._currentToken.startPos;
|
14635
|
+
this._match(_token.T_MATCHING);
|
14636
|
+
this._match(_token.T_LPAREN);
|
14637
|
+
var subject = this._parseExpression();
|
14638
|
+
this._match(_token.T_RPAREN);
|
14639
|
+
this._match(_token.T_SELECT);
|
14640
|
+
var branches = this._parseMatchingBranches();
|
14641
|
+
var result = new _ast.ASTExprMatching(subject, branches);
|
14642
|
+
result.startPos = startPos;
|
14643
|
+
result.endPos = result.endPos;
|
14644
|
+
return result;
|
14645
|
+
}
|
14569
14646
|
|
14570
14647
|
/*
|
14571
14648
|
* Parse any of the following constructions:
|
@@ -14826,6 +14903,47 @@ var Parser = exports.Parser = function () {
|
|
14826
14903
|
return result;
|
14827
14904
|
}
|
14828
14905
|
|
14906
|
+
/** MatchingBranch **/
|
14907
|
+
|
14908
|
+
}, {
|
14909
|
+
key: '_parseMatchingBranches',
|
14910
|
+
value: function _parseMatchingBranches() {
|
14911
|
+
var branches = [];
|
14912
|
+
while (this._currentToken.tag !== _token.T_OTHERWISE) {
|
14913
|
+
branches.push(this._parseMatchingBranch());
|
14914
|
+
}
|
14915
|
+
this._match(_token.T_OTHERWISE);
|
14916
|
+
return branches;
|
14917
|
+
}
|
14918
|
+
}, {
|
14919
|
+
key: '_parseMatchingBranch',
|
14920
|
+
value: function _parseMatchingBranch() {
|
14921
|
+
var body = this._parseExpression();
|
14922
|
+
switch (this._currentToken.tag) {
|
14923
|
+
case _token.T_ON:
|
14924
|
+
{
|
14925
|
+
this._match(_token.T_ON);
|
14926
|
+
var pattern = this._parsePattern();
|
14927
|
+
var result = new _ast.ASTMatchingBranch(pattern, body);
|
14928
|
+
result.startPos = body.startPos;
|
14929
|
+
result.endPos = pattern.endPos;
|
14930
|
+
return result;
|
14931
|
+
}
|
14932
|
+
case _token.T_OTHERWISE:
|
14933
|
+
{
|
14934
|
+
var _pattern = new _ast.ASTPatternWildcard();
|
14935
|
+
_pattern.startPos = this._currentToken.startPos;
|
14936
|
+
_pattern.endPos = this._currentToken.endPos;
|
14937
|
+
var _result2 = new _ast.ASTMatchingBranch(_pattern, body);
|
14938
|
+
_result2.startPos = body.startPos;
|
14939
|
+
_result2.endPos = this._currentToken.endPos;
|
14940
|
+
return _result2;
|
14941
|
+
}
|
14942
|
+
default:
|
14943
|
+
return fail(this._currentToken.startPos, this._currentToken.endPos, 'expected-but-found', [(0, _i18n.i18n)('<alternative>')([(0, _i18n.i18n)('T_ON'), (0, _i18n.i18n)('T_OTHERWISE')]), (0, _i18n.i18n)(Symbol.keyFor(this._currentToken.tag))]);
|
14944
|
+
}
|
14945
|
+
}
|
14946
|
+
|
14829
14947
|
/** FieldBinding **/
|
14830
14948
|
|
14831
14949
|
}, {
|
@@ -15033,6 +15151,9 @@ var KEYWORDS = {
|
|
15033
15151
|
'while': _token.T_WHILE,
|
15034
15152
|
'switch': _token.T_SWITCH,
|
15035
15153
|
'to': _token.T_TO,
|
15154
|
+
'matching': _token.T_MATCHING,
|
15155
|
+
'select': _token.T_SELECT,
|
15156
|
+
'on': _token.T_ON,
|
15036
15157
|
/* Assignment */
|
15037
15158
|
'let': _token.T_LET,
|
15038
15159
|
/* Operators */
|
@@ -16057,6 +16178,11 @@ var Linter = exports.Linter = function () {
|
|
16057
16178
|
}, {
|
16058
16179
|
key: '_lintSwitchBranches',
|
16059
16180
|
value: function _lintSwitchBranches(branches, isInteractiveProgram) {
|
16181
|
+
this._lintBranches(branches, isInteractiveProgram, false /* isMatching */);
|
16182
|
+
}
|
16183
|
+
}, {
|
16184
|
+
key: '_lintBranches',
|
16185
|
+
value: function _lintBranches(branches, isInteractiveProgram, isMatching) {
|
16060
16186
|
/* Check that each pattern is well-formed */
|
16061
16187
|
var _iteratorNormalCompletion8 = true;
|
16062
16188
|
var _didIteratorError8 = false;
|
@@ -16083,13 +16209,13 @@ var Linter = exports.Linter = function () {
|
|
16083
16209
|
}
|
16084
16210
|
}
|
16085
16211
|
|
16086
|
-
this.
|
16087
|
-
this.
|
16088
|
-
this.
|
16212
|
+
this._branchesCheckWildcardAndVariable(branches);
|
16213
|
+
this._branchesCheckNoRepeats(branches);
|
16214
|
+
this._branchesCheckCompatible(branches);
|
16089
16215
|
if (isInteractiveProgram) {
|
16090
|
-
this.
|
16216
|
+
this._branchesCheckTypeEvent(branches);
|
16091
16217
|
} else {
|
16092
|
-
this.
|
16218
|
+
this._branchesCheckTypeNotEvent(branches);
|
16093
16219
|
}
|
16094
16220
|
|
16095
16221
|
/* Lint recursively each branch */
|
@@ -16101,7 +16227,7 @@ var Linter = exports.Linter = function () {
|
|
16101
16227
|
for (var _iterator9 = branches[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
|
16102
16228
|
var _branch = _step9.value;
|
16103
16229
|
|
16104
|
-
this.
|
16230
|
+
this._lintBranchBody(_branch, isMatching);
|
16105
16231
|
}
|
16106
16232
|
} catch (err) {
|
16107
16233
|
_didIteratorError9 = true;
|
@@ -16122,8 +16248,8 @@ var Linter = exports.Linter = function () {
|
|
16122
16248
|
/* Check that there is at most one wildcard/variable pattern at the end */
|
16123
16249
|
|
16124
16250
|
}, {
|
16125
|
-
key: '
|
16126
|
-
value: function
|
16251
|
+
key: '_branchesCheckWildcardAndVariable',
|
16252
|
+
value: function _branchesCheckWildcardAndVariable(branches) {
|
16127
16253
|
var i = 0;
|
16128
16254
|
var n = branches.length;
|
16129
16255
|
var _iteratorNormalCompletion10 = true;
|
@@ -16162,8 +16288,8 @@ var Linter = exports.Linter = function () {
|
|
16162
16288
|
* of branches. */
|
16163
16289
|
|
16164
16290
|
}, {
|
16165
|
-
key: '
|
16166
|
-
value: function
|
16291
|
+
key: '_branchesCheckNoRepeats',
|
16292
|
+
value: function _branchesCheckNoRepeats(branches) {
|
16167
16293
|
var coveredNumbers = {};
|
16168
16294
|
var coveredConstructors = {};
|
16169
16295
|
var coveredTuples = {};
|
@@ -16231,8 +16357,8 @@ var Linter = exports.Linter = function () {
|
|
16231
16357
|
* i.e. that they belong to the same type */
|
16232
16358
|
|
16233
16359
|
}, {
|
16234
|
-
key: '
|
16235
|
-
value: function
|
16360
|
+
key: '_branchesCheckCompatible',
|
16361
|
+
value: function _branchesCheckCompatible(branches) {
|
16236
16362
|
var expectedType = null;
|
16237
16363
|
var _iteratorNormalCompletion12 = true;
|
16238
16364
|
var _didIteratorError12 = false;
|
@@ -16268,8 +16394,8 @@ var Linter = exports.Linter = function () {
|
|
16268
16394
|
/* Check that there are patterns are of type Event */
|
16269
16395
|
|
16270
16396
|
}, {
|
16271
|
-
key: '
|
16272
|
-
value: function
|
16397
|
+
key: '_branchesCheckTypeEvent',
|
16398
|
+
value: function _branchesCheckTypeEvent(branches) {
|
16273
16399
|
var _iteratorNormalCompletion13 = true;
|
16274
16400
|
var _didIteratorError13 = false;
|
16275
16401
|
var _iteratorError13 = undefined;
|
@@ -16302,8 +16428,8 @@ var Linter = exports.Linter = function () {
|
|
16302
16428
|
/* Check that there are no patterns of type Event */
|
16303
16429
|
|
16304
16430
|
}, {
|
16305
|
-
key: '
|
16306
|
-
value: function
|
16431
|
+
key: '_branchesCheckTypeNotEvent',
|
16432
|
+
value: function _branchesCheckTypeNotEvent(branches) {
|
16307
16433
|
var _iteratorNormalCompletion14 = true;
|
16308
16434
|
var _didIteratorError14 = false;
|
16309
16435
|
var _iteratorError14 = undefined;
|
@@ -16336,8 +16462,8 @@ var Linter = exports.Linter = function () {
|
|
16336
16462
|
/* Recursively lint the body of each branch. Locally bind variables. */
|
16337
16463
|
|
16338
16464
|
}, {
|
16339
|
-
key: '
|
16340
|
-
value: function
|
16465
|
+
key: '_lintBranchBody',
|
16466
|
+
value: function _lintBranchBody(branch, isMatching) {
|
16341
16467
|
var _iteratorNormalCompletion15 = true;
|
16342
16468
|
var _didIteratorError15 = false;
|
16343
16469
|
var _iteratorError15 = undefined;
|
@@ -16363,7 +16489,11 @@ var Linter = exports.Linter = function () {
|
|
16363
16489
|
}
|
16364
16490
|
}
|
16365
16491
|
|
16366
|
-
|
16492
|
+
if (isMatching) {
|
16493
|
+
this._lintExpression(branch.body);
|
16494
|
+
} else {
|
16495
|
+
this._lintStatement(branch.body);
|
16496
|
+
}
|
16367
16497
|
var _iteratorNormalCompletion16 = true;
|
16368
16498
|
var _didIteratorError16 = false;
|
16369
16499
|
var _iteratorError16 = undefined;
|
@@ -16582,6 +16712,8 @@ var Linter = exports.Linter = function () {
|
|
16582
16712
|
return this._lintExprConstantString(expression);
|
16583
16713
|
case _ast.N_ExprChoose:
|
16584
16714
|
return this._lintExprChoose(expression);
|
16715
|
+
case _ast.N_ExprMatching:
|
16716
|
+
return this._lintExprMatching(expression);
|
16585
16717
|
case _ast.N_ExprList:
|
16586
16718
|
return this._lintExprList(expression);
|
16587
16719
|
case _ast.N_ExprRange:
|
@@ -16622,6 +16754,19 @@ var Linter = exports.Linter = function () {
|
|
16622
16754
|
this._lintExpression(expression.trueExpr);
|
16623
16755
|
this._lintExpression(expression.falseExpr);
|
16624
16756
|
}
|
16757
|
+
}, {
|
16758
|
+
key: '_lintExprMatching',
|
16759
|
+
value: function _lintExprMatching(expression) {
|
16760
|
+
this._lintExpression(expression.subject);
|
16761
|
+
this._lintMatchingBranches(expression.branches);
|
16762
|
+
}
|
16763
|
+
}, {
|
16764
|
+
key: '_lintMatchingBranches',
|
16765
|
+
value: function _lintMatchingBranches(branches) {
|
16766
|
+
this._lintBranches(branches, false /* !isInteractiveProgram */
|
16767
|
+
, true /* isMatching */
|
16768
|
+
);
|
16769
|
+
}
|
16625
16770
|
}, {
|
16626
16771
|
key: '_lintExprList',
|
16627
16772
|
value: function _lintExprList(expression) {
|
@@ -17322,7 +17467,7 @@ var Compiler = exports.Compiler = function () {
|
|
17322
17467
|
}, {
|
17323
17468
|
key: '_compileDefInteractiveProgram',
|
17324
17469
|
value: function _compileDefInteractiveProgram(definition) {
|
17325
|
-
this.
|
17470
|
+
this._compileMatchBranches(definition, false /* isMatching */);
|
17326
17471
|
this._produce(definition.startPos, definition.endPos, new _instruction.IReturn());
|
17327
17472
|
}
|
17328
17473
|
|
@@ -17673,11 +17818,11 @@ var Compiler = exports.Compiler = function () {
|
|
17673
17818
|
value: function _compileStmtSwitch(statement) {
|
17674
17819
|
/* Compile the subject */
|
17675
17820
|
this._compileExpression(statement.subject);
|
17676
|
-
this.
|
17821
|
+
this._compileMatchBranches(statement, false /* !isMatching */);
|
17677
17822
|
}
|
17678
17823
|
}, {
|
17679
|
-
key: '
|
17680
|
-
value: function
|
17824
|
+
key: '_compileMatchBranches',
|
17825
|
+
value: function _compileMatchBranches(statement, isMatching) {
|
17681
17826
|
var branchLabels = [];
|
17682
17827
|
/* Attempt to match each pattern */
|
17683
17828
|
var _iteratorNormalCompletion4 = true;
|
@@ -17719,7 +17864,11 @@ var Compiler = exports.Compiler = function () {
|
|
17719
17864
|
this._produce(branch.startPos, branch.endPos, new _instruction.ILabel(label));
|
17720
17865
|
this._compilePatternBind(branch.pattern);
|
17721
17866
|
this._produce(branch.startPos, branch.endPos, new _instruction.IPop());
|
17722
|
-
|
17867
|
+
if (isMatching) {
|
17868
|
+
this._compileExpression(branch.body);
|
17869
|
+
} else {
|
17870
|
+
this._compileStatement(branch.body);
|
17871
|
+
}
|
17723
17872
|
this._compilePatternUnbind(branch.pattern);
|
17724
17873
|
this._produce(branch.startPos, branch.endPos, new _instruction.IJump(labelEnd));
|
17725
17874
|
}
|
@@ -17995,6 +18144,8 @@ var Compiler = exports.Compiler = function () {
|
|
17995
18144
|
return this._compileExprConstantString(expression);
|
17996
18145
|
case _ast.N_ExprChoose:
|
17997
18146
|
return this._compileExprChoose(expression);
|
18147
|
+
case _ast.N_ExprMatching:
|
18148
|
+
return this._compileExprMatching(expression);
|
17998
18149
|
case _ast.N_ExprList:
|
17999
18150
|
return this._compileExprList(expression);
|
18000
18151
|
case _ast.N_ExprRange:
|
@@ -18069,6 +18220,12 @@ var Compiler = exports.Compiler = function () {
|
|
18069
18220
|
this._compileExpression(expression.falseExpr);
|
18070
18221
|
this._produce(expression.startPos, expression.endPos, new _instruction.ILabel(labelEnd));
|
18071
18222
|
}
|
18223
|
+
}, {
|
18224
|
+
key: '_compileExprMatching',
|
18225
|
+
value: function _compileExprMatching(expression) {
|
18226
|
+
this._compileExpression(expression.subject);
|
18227
|
+
this._compileMatchBranches(expression, true /* isMatching */);
|
18228
|
+
}
|
18072
18229
|
}, {
|
18073
18230
|
key: '_compileExprList',
|
18074
18231
|
value: function _compileExprList(expression) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobstones-code-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Alfonso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-10-
|
11
|
+
date: 2018-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|