refactored block assembly, experimental

snap7
jmoenig 2021-12-06 09:29:57 +01:00
rodzic a5b8d10bfe
commit cb1246a4c4
6 zmienionych plików z 20 dodań i 18 usunięć

Wyświetl plik

@ -68,6 +68,9 @@
* Chinese, thanks, Simon!
* Brazilian Portuguese, thank you, Cassiano D'Andrea!
### 2021-12-06
* blocks, threads: refactored block assembly, experimental
### 2021-12-05
* blocks, threads, objects: introspection & syntax analysis, experimental

Wyświetl plik

@ -16,11 +16,11 @@
<script src="src/morphic.js?version=2021-07-09"></script>
<script src="src/symbols.js?version=2021-03-03"></script>
<script src="src/widgets.js?version=2021-17-09"></script>
<script src="src/blocks.js?version=2021-12-05"></script>
<script src="src/threads.js?version=2021-12-05"></script>
<script src="src/blocks.js?version=2021-12-06"></script>
<script src="src/threads.js?version=2021-12-06"></script>
<script src="src/objects.js?version=2021-12-05"></script>
<script src="src/scenes.js?version=2021-11-24"></script>
<script src="src/gui.js?version=2021-12-05"></script>
<script src="src/gui.js?version=2021-12-06"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2021-07-19"></script>
<script src="src/byob.js?version=2021-11-23"></script>

Wyświetl plik

@ -160,7 +160,7 @@ CustomCommandBlockMorph, ToggleButtonMorph, DialMorph, SnapExtensions*/
// Global stuff ////////////////////////////////////////////////////////
modules.blocks = '2021-December-05';
modules.blocks = '2021-December-06';
var SyntaxElementMorph;
var BlockMorph;
@ -3732,7 +3732,7 @@ BlockMorph.prototype.equalTo = function (other) {
this.blockSpec === other.blockSpec;
};
BlockMorph.prototype.copyWithInputs = function (inputs, parameterNames) {
BlockMorph.prototype.copyWithInputs = function (inputs) {
// private - only to be called from a Context
var cpy = this.fullCopy(),
slots = cpy.inputs(),
@ -3812,7 +3812,7 @@ BlockMorph.prototype.copyWithInputs = function (inputs, parameterNames) {
});
// create a function to return
return cpy.reify(parameterNames);
return cpy.reify(dta.slice(count));
};
BlockMorph.prototype.reify = function (inputNames) {
@ -5560,7 +5560,7 @@ CommandBlockMorph.prototype.extract = function () {
// CommandBlockMorph components - EXPERIMENTAL
CommandBlockMorph.prototype.components = function (parameterNames) {
CommandBlockMorph.prototype.components = function (parameterNames = []) {
var seq = new List(this.blockSequence()).map(block => {
var expr = block.fullCopy(),
nb = expr.nextBlock(),
@ -5570,7 +5570,7 @@ CommandBlockMorph.prototype.components = function (parameterNames) {
}
expr.fixBlockColor(null, true);
inputs = expr.inputs();
parts = new List([expr.reify(parameterNames)]);
parts = new List([expr.reify()]);
inputs.forEach(inp => {
var val;
if (inp instanceof BlockMorph) {
@ -5615,6 +5615,7 @@ CommandBlockMorph.prototype.components = function (parameterNames) {
}
});
parts.at(1).updateEmptySlots();
parameterNames.forEach(name => parts.add(name));
return parts;
});
return seq.length() === 1 ? seq.at(1) : seq;
@ -6407,12 +6408,12 @@ ReporterBlockMorph.prototype.userDestroy = function () {
// ReporterBlockMorph components - EXPERIMENTAL
ReporterBlockMorph.prototype.components = function (parameterNames) {
ReporterBlockMorph.prototype.components = function (parameterNames = []) {
var expr = this.fullCopy(),
inputs = expr.inputs(),
parts;
expr.fixBlockColor(null, true);
parts = new List([expr.reify(parameterNames)]);
parts = new List([expr.reify()]);
inputs.forEach(inp => {
var val;
if (inp instanceof BlockMorph) {
@ -6456,6 +6457,7 @@ ReporterBlockMorph.prototype.components = function (parameterNames) {
expr.revertToDefaultInput(inp, true);
}
});
parameterNames.forEach(name => parts.add(name));
parts.at(1).updateEmptySlots();
return parts;
};

Wyświetl plik

@ -86,7 +86,7 @@ BlockVisibilityDialogMorph, ThreadManager*/
// Global stuff ////////////////////////////////////////////////////////
modules.gui = '2021-December-05';
modules.gui = '2021-December-06';
// Declarations
@ -4770,7 +4770,7 @@ IDE_Morph.prototype.aboutSnap = function () {
module, btn1, btn2, btn3, btn4, licenseBtn, translatorsBtn,
world = this.world();
aboutTxt = 'Snap! 7 - dev211205 -\nBuild Your Own Blocks\n\n'
aboutTxt = 'Snap! 7 - dev211206 -\nBuild Your Own Blocks\n\n'
+ 'Copyright \u24B8 2008-2021 Jens M\u00F6nig and '
+ 'Brian Harvey\n'
+ 'jens@moenig.org, bh@cs.berkeley.edu\n\n'

Wyświetl plik

@ -64,7 +64,7 @@ SnapExtensions, AlignmentMorph, TextMorph, Cloud, HatBlockMorph*/
/*jshint esversion: 6*/
modules.threads = '2021-December-05';
modules.threads = '2021-December-06';
var ThreadManager;
var Process;
@ -7136,13 +7136,10 @@ Context.prototype.components = function () {
Context.prototype.equalTo = function (other) {
var c1 = this.components(),
c2 = other.components();
if (!(new List(this.inputs).equalTo(new List(other.inputs)))) {
return false;
}
if (snapEquals(c1.cdr(), c2.cdr())) {
return snapEquals(this.expression, other.expression);
}
return snapEquals(c1, c2);
return false;
};
Context.prototype.copyWithInputs = function (inputs) {

2
sw.js
Wyświetl plik

@ -1,4 +1,4 @@
var snapVersion = '7-dev211205'
var snapVersion = '7-dev211206'
var cacheName = 'snap-pwa',
filesToCache = [