mirror of
https://github.com/scratchfoundation/scratch-blocks.git
synced 2025-08-20 09:59:28 -04:00
Fix order of operations on same-order groups.
This commit is contained in:
parent
b91471abdb
commit
57d0ffa68b
1 changed files with 10 additions and 13 deletions
|
@ -208,19 +208,16 @@ Blockly.Generator.prototype.valueToCode = function(block, name, order) {
|
|||
if (isNaN(innerOrder)) {
|
||||
throw 'Expecting valid order from value block "' + targetBlock.type + '".';
|
||||
}
|
||||
if (code && order <= innerOrder) {
|
||||
if (order == innerOrder || (order == 0 || order == 99)) {
|
||||
// 0 is the atomic order, 99 is the none order. No parentheses needed.
|
||||
// In all known languages multiple such code blocks are not order
|
||||
// sensitive. In fact in Python ('a' 'b') 'c' would fail.
|
||||
} else {
|
||||
// The operators outside this code are stonger than the operators
|
||||
// inside this code. To prevent the code from being pulled apart,
|
||||
// wrap the code in parentheses.
|
||||
// Technically, this should be handled on a language-by-language basis.
|
||||
// However all known (sane) languages use parentheses for grouping.
|
||||
code = '(' + code + ')';
|
||||
}
|
||||
// 0 is the atomic order, 99 is the none order. No parentheses needed.
|
||||
// In all known languages multiple such code blocks are not order
|
||||
// sensitive. In fact in Python ('a' 'b') 'c' would fail.
|
||||
if (code && order <= innerOrder && order != 0 && order != 99) {
|
||||
// The operators outside this code are stonger than the operators
|
||||
// inside this code. To prevent the code from being pulled apart,
|
||||
// wrap the code in parentheses.
|
||||
// Technically, this should be handled on a language-by-language basis.
|
||||
// However all known (sane) languages use parentheses for grouping.
|
||||
code = '(' + code + ')';
|
||||
}
|
||||
return code;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue