gobstones-code-runner 0.3.1 → 0.4.1
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 +62 -1
- data/lib/gobstones/code-runner/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c753732e0686c2b15d104e5040fe90f3ac732f63acb4782eaff3f0651823a13c
|
4
|
+
data.tar.gz: 9377a6de2f1e8daca3eb45064a4a64ad3797b07d9ecd74c7ea8bb6216cdd968e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 218aa61a1d56e59cc195c534912f4b8f0a3d9c298221ef80c0e0d851702a7a421b531a48d553329a02af436695032659b264287e85cc4a8fb6938f84f7e2bd3b
|
7
|
+
data.tar.gz: 77b564c6fe24a79bb1913e753084acfe39dfb77e6b7a52ce3b0ba87ff3f2928e49328e4ecdde3225b64603f5f170539ff2407f6c65223f2d17872de2a154e6f2
|
@@ -4367,7 +4367,7 @@ function i18n(message) {
|
|
4367
4367
|
|
4368
4368
|
function i18nWithLanguage(code, thunk) {
|
4369
4369
|
if (!(code in dictionaries)) {
|
4370
|
-
throw Error('
|
4370
|
+
throw Error('Invalid language code: ' + code);
|
4371
4371
|
}
|
4372
4372
|
var oldLanguage = CURRENT_LANGUAGE;
|
4373
4373
|
CURRENT_LANGUAGE = code;
|
@@ -6394,6 +6394,17 @@ var RuntimePrimitives = exports.RuntimePrimitives = function () {
|
|
6394
6394
|
}
|
6395
6395
|
}
|
6396
6396
|
|
6397
|
+
this._primitiveProcedures[(0, _i18n.i18n)('PRIM:TypeCheck')] = new PrimitiveOperation([typeAny, typeAny, typeString], function (startPos, endPos, globalState, args) {
|
6398
|
+
var v1 = args[0];
|
6399
|
+
var v2 = args[1];
|
6400
|
+
var errorMessage = args[2];
|
6401
|
+
if ((0, _value.joinTypes)(v1.type(), v2.type()) === null) {
|
6402
|
+
fail(startPos, endPos, 'typecheck-failed', [errorMessage.string, v1.type(), v2.type()]);
|
6403
|
+
}
|
6404
|
+
}, function (globalState, color) {
|
6405
|
+
return null;
|
6406
|
+
});
|
6407
|
+
|
6397
6408
|
this._primitiveProcedures[(0, _i18n.i18n)('PRIM:PutStone')] = new PrimitiveOperation([typeColor()], noValidation, function (globalState, color) {
|
6398
6409
|
globalState.putStone(colorFromValue(color));
|
6399
6410
|
return null;
|
@@ -6607,6 +6618,15 @@ var RuntimePrimitives = exports.RuntimePrimitives = function () {
|
|
6607
6618
|
return a.mod(b);
|
6608
6619
|
});
|
6609
6620
|
|
6621
|
+
this._primitiveFunctions['^'] = new PrimitiveOperation([typeInteger, typeInteger], function (startPos, endPos, globalState, args) {
|
6622
|
+
var b = args[1];
|
6623
|
+
if (b.lt(new _value.ValueInteger(0))) {
|
6624
|
+
fail(startPos, endPos, 'negative-exponent', []);
|
6625
|
+
}
|
6626
|
+
}, function (globalState, a, b) {
|
6627
|
+
return a.pow(b);
|
6628
|
+
});
|
6629
|
+
|
6610
6630
|
this._primitiveFunctions['-(unary)'] = new PrimitiveOperation([typeAny], function (startPos, endPos, globalState, args) {
|
6611
6631
|
var a = args[0];
|
6612
6632
|
validateTypeAmong(startPos, endPos, a, typesWithOpposite());
|
@@ -7557,6 +7577,16 @@ var ValueInteger = exports.ValueInteger = function (_Value) {
|
|
7557
7577
|
var q = this.div(other);
|
7558
7578
|
return this.sub(q.mul(other));
|
7559
7579
|
}
|
7580
|
+
|
7581
|
+
/* Assumes that 'other' is non-negative */
|
7582
|
+
|
7583
|
+
}, {
|
7584
|
+
key: 'pow',
|
7585
|
+
value: function pow(other) {
|
7586
|
+
var a = (0, _bigint.Integer)(this._number);
|
7587
|
+
var b = (0, _bigint.Integer)(other._number);
|
7588
|
+
return new ValueInteger(a.pow(b).toString());
|
7589
|
+
}
|
7560
7590
|
}, {
|
7561
7591
|
key: 'eq',
|
7562
7592
|
value: function eq(other) {
|
@@ -8751,6 +8781,29 @@ function openingDelimiterName(delimiter) {
|
|
8751
8781
|
}
|
8752
8782
|
}
|
8753
8783
|
|
8784
|
+
function formatTypes(string, type1, type2) {
|
8785
|
+
var result = '';
|
8786
|
+
for (var i = 0; i < string.length; i++) {
|
8787
|
+
if (string[i] === '%' && i + 1 < string.length) {
|
8788
|
+
if (string[i + 1] === '%') {
|
8789
|
+
result += '%';
|
8790
|
+
i++;
|
8791
|
+
} else if (string[i + 1] === '1') {
|
8792
|
+
result += typeAsNoun(type1);
|
8793
|
+
i++;
|
8794
|
+
} else if (string[i + 1] === '2') {
|
8795
|
+
result += typeAsNoun(type2);
|
8796
|
+
i++;
|
8797
|
+
} else {
|
8798
|
+
result += '%';
|
8799
|
+
}
|
8800
|
+
} else {
|
8801
|
+
result += string[i];
|
8802
|
+
}
|
8803
|
+
}
|
8804
|
+
return result;
|
8805
|
+
}
|
8806
|
+
|
8754
8807
|
var LOCALE_ES = exports.LOCALE_ES = {
|
8755
8808
|
|
8756
8809
|
/* Descriptions of syntactic constructions and tokens */
|
@@ -9109,12 +9162,19 @@ var LOCALE_ES = exports.LOCALE_ES = {
|
|
9109
9162
|
|
9110
9163
|
'errmsg:cannot-divide-by-zero': 'No se puede dividir por cero.',
|
9111
9164
|
|
9165
|
+
'errmsg:negative-exponent': 'El exponente de la potencia no puede ser negativo.',
|
9166
|
+
|
9112
9167
|
'errmsg:list-cannot-be-empty': 'La lista no puede ser vacía.',
|
9113
9168
|
|
9114
9169
|
'errmsg:timeout': function errmsgTimeout(millisecs) {
|
9115
9170
|
return 'La ejecución del programa demoró más de ' + millisecs.toString() + 'ms.';
|
9116
9171
|
},
|
9117
9172
|
|
9173
|
+
/* Typecheck */
|
9174
|
+
'errmsg:typecheck-failed': function errmsgTypecheckFailed(errorMessage, type1, type2) {
|
9175
|
+
return formatTypes(errorMessage, type1, type2);
|
9176
|
+
},
|
9177
|
+
|
9118
9178
|
/* Board operations */
|
9119
9179
|
'errmsg:cannot-move-to': function errmsgCannotMoveTo(dirName) {
|
9120
9180
|
return 'No se puede mover hacia la dirección ' + dirName + ': cae afuera del tablero.';
|
@@ -9151,6 +9211,7 @@ var LOCALE_ES = exports.LOCALE_ES = {
|
|
9151
9211
|
'CONS:Dir2': 'Sur',
|
9152
9212
|
'CONS:Dir3': 'Oeste',
|
9153
9213
|
|
9214
|
+
'PRIM:TypeCheck': 'TypeCheck',
|
9154
9215
|
'PRIM:BOOM': 'BOOM',
|
9155
9216
|
'PRIM:boom': 'boom',
|
9156
9217
|
|
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.4.1
|
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-
|
11
|
+
date: 2018-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
90
|
rubyforge_project:
|
91
|
-
rubygems_version: 2.7.
|
91
|
+
rubygems_version: 2.7.7
|
92
92
|
signing_key:
|
93
93
|
specification_version: 4
|
94
94
|
summary: Gobstones Code Runner
|