mirror of
https://github.com/google/blockly.git
synced 2026-01-10 18:37:09 +01:00
Collapse the five 0/1-based index flags into one option.
This commit is contained in:
@@ -84,12 +84,6 @@ Blockly.Dart.ORDER_CASCADE = 15; // ..
|
||||
Blockly.Dart.ORDER_ASSIGNMENT = 16; // = *= /= ~/= %= += -= <<= >>= &= ^= |=
|
||||
Blockly.Dart.ORDER_NONE = 99; // (...)
|
||||
|
||||
/**
|
||||
* Allow for switching between one and zero based indexing for lists and text,
|
||||
* one based by default.
|
||||
*/
|
||||
Blockly.Dart.ONE_BASED_INDEXING = true;
|
||||
|
||||
/**
|
||||
* Initialise the database of variable names.
|
||||
* @param {!Blockly.Workspace} workspace Workspace to generate code from.
|
||||
@@ -232,10 +226,10 @@ Blockly.Dart.getAdjusted = function(block, atId, opt_delta, opt_negate,
|
||||
opt_order) {
|
||||
var delta = opt_delta || 0;
|
||||
var order = opt_order || Blockly.Dart.ORDER_NONE;
|
||||
if (Blockly.Dart.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
delta--;
|
||||
}
|
||||
var defaultAtIndex = Blockly.Dart.ONE_BASED_INDEXING ? '1' : '0';
|
||||
var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0';
|
||||
if (delta) {
|
||||
var at = Blockly.Dart.valueToCode(block, atId,
|
||||
Blockly.Dart.ORDER_ADDITIVE) || defaultAtIndex;
|
||||
|
||||
@@ -80,7 +80,7 @@ Blockly.Dart['lists_indexOf'] = function(block) {
|
||||
var list = Blockly.Dart.valueToCode(block, 'VALUE',
|
||||
Blockly.Dart.ORDER_UNARY_POSTFIX) || '[]';
|
||||
var code = list + '.' + operator + '(' + item + ')';
|
||||
if (Blockly.Dart.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
return [code + ' + 1', Blockly.Dart.ORDER_ADDITIVE];
|
||||
}
|
||||
return [code, Blockly.Dart.ORDER_UNARY_POSTFIX];
|
||||
|
||||
@@ -90,7 +90,7 @@ Blockly.Dart['text_indexOf'] = function(block) {
|
||||
var text = Blockly.Dart.valueToCode(block, 'VALUE',
|
||||
Blockly.Dart.ORDER_UNARY_POSTFIX) || '\'\'';
|
||||
var code = text + '.' + operator + '(' + substring + ')';
|
||||
if (Blockly.Dart.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
return [code + ' + 1', Blockly.Dart.ORDER_ADDITIVE];
|
||||
}
|
||||
return [code, Blockly.Dart.ORDER_UNARY_POSTFIX];
|
||||
|
||||
@@ -134,12 +134,6 @@ Blockly.JavaScript.ORDER_OVERRIDES = [
|
||||
[Blockly.JavaScript.ORDER_LOGICAL_OR, Blockly.JavaScript.ORDER_LOGICAL_OR]
|
||||
];
|
||||
|
||||
/**
|
||||
* Allow for switching between one and zero based indexing for lists and text,
|
||||
* one based by default.
|
||||
*/
|
||||
Blockly.JavaScript.ONE_BASED_INDEXING = true;
|
||||
|
||||
/**
|
||||
* Initialise the database of variable names.
|
||||
* @param {!Blockly.Workspace} workspace Workspace to generate code from.
|
||||
@@ -272,10 +266,10 @@ Blockly.JavaScript.getAdjusted = function(block, atId, opt_delta, opt_negate,
|
||||
opt_order) {
|
||||
var delta = opt_delta || 0;
|
||||
var order = opt_order || Blockly.JavaScript.ORDER_NONE;
|
||||
if (Blockly.JavaScript.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
delta--;
|
||||
}
|
||||
var defaultAtIndex = Blockly.JavaScript.ONE_BASED_INDEXING ? '1' : '0';
|
||||
var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0';
|
||||
if (delta > 0) {
|
||||
var at = Blockly.JavaScript.valueToCode(block, atId,
|
||||
Blockly.JavaScript.ORDER_ADDITION) || defaultAtIndex;
|
||||
|
||||
@@ -88,7 +88,7 @@ Blockly.JavaScript['lists_indexOf'] = function(block) {
|
||||
var list = Blockly.JavaScript.valueToCode(block, 'VALUE',
|
||||
Blockly.JavaScript.ORDER_MEMBER) || '[]';
|
||||
var code = list + '.' + operator + '(' + item + ')';
|
||||
if (Blockly.JavaScript.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
return [code + ' + 1', Blockly.JavaScript.ORDER_ADDITION];
|
||||
}
|
||||
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
|
||||
|
||||
@@ -96,7 +96,7 @@ Blockly.JavaScript['text_indexOf'] = function(block) {
|
||||
Blockly.JavaScript.ORDER_MEMBER) || '\'\'';
|
||||
var code = text + '.' + operator + '(' + substring + ')';
|
||||
// Adjust index if using one-based indices.
|
||||
if (Blockly.JavaScript.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
return [code + ' + 1', Blockly.JavaScript.ORDER_ADDITION];
|
||||
}
|
||||
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
|
||||
|
||||
@@ -87,9 +87,9 @@ Blockly.Lua.ORDER_OR = 9; // or
|
||||
Blockly.Lua.ORDER_NONE = 99;
|
||||
|
||||
/**
|
||||
* Lua is not supporting zero-indexing since the language itself is one-indexed,
|
||||
* so there is not flag for ONE_BASED_INDEXING to indicate which indexing is
|
||||
* used for lists and text.
|
||||
* Note: Lua is not supporting zero-indexing since the language itself is
|
||||
* one-indexed, so the generator does not repoct the oneBasedIndex configuration
|
||||
* option used for lists and text.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
||||
@@ -131,12 +131,6 @@ Blockly.PHP.ORDER_OVERRIDES = [
|
||||
[Blockly.PHP.ORDER_LOGICAL_OR, Blockly.PHP.ORDER_LOGICAL_OR]
|
||||
];
|
||||
|
||||
/**
|
||||
* Allow for switching between one and zero based indexing for lists and text,
|
||||
* one based by default.
|
||||
*/
|
||||
Blockly.PHP.ONE_BASED_INDEXING = true;
|
||||
|
||||
/**
|
||||
* Initialise the database of variable names.
|
||||
* @param {!Blockly.Workspace} workspace Workspace to generate code from.
|
||||
@@ -257,10 +251,10 @@ Blockly.PHP.getAdjusted = function(block, atId, opt_delta, opt_negate,
|
||||
opt_order) {
|
||||
var delta = opt_delta || 0;
|
||||
var order = opt_order || Blockly.PHP.ORDER_NONE;
|
||||
if (Blockly.PHP.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
delta--;
|
||||
}
|
||||
var defaultAtIndex = Blockly.PHP.ONE_BASED_INDEXING ? '1' : '0';
|
||||
var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0';
|
||||
if (delta > 0) {
|
||||
var at = Blockly.PHP.valueToCode(block, atId,
|
||||
Blockly.PHP.ORDER_ADDITION) || defaultAtIndex;
|
||||
|
||||
@@ -105,7 +105,7 @@ Blockly.PHP['lists_indexOf'] = function(block) {
|
||||
Blockly.PHP.ORDER_NONE) || '\'\'';
|
||||
var argument1 = Blockly.PHP.valueToCode(block, 'VALUE',
|
||||
Blockly.PHP.ORDER_MEMBER) || '[]';
|
||||
if (Blockly.PHP.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
var errorIndex = ' 0';
|
||||
var indexAdjustment = ' + 1';
|
||||
} else {
|
||||
|
||||
@@ -102,7 +102,7 @@ Blockly.PHP['text_indexOf'] = function(block) {
|
||||
Blockly.PHP.ORDER_NONE) || '\'\'';
|
||||
var text = Blockly.PHP.valueToCode(block, 'VALUE',
|
||||
Blockly.PHP.ORDER_NONE) || '\'\'';
|
||||
if (Blockly.PHP.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
var errorIndex = ' 0';
|
||||
var indexAdjustment = ' + 1';
|
||||
} else {
|
||||
|
||||
@@ -90,12 +90,6 @@ Blockly.Python.ORDER_CONDITIONAL = 15; // if else
|
||||
Blockly.Python.ORDER_LAMBDA = 16; // lambda
|
||||
Blockly.Python.ORDER_NONE = 99; // (...)
|
||||
|
||||
/**
|
||||
* Allow for switching between one and zero based indexing for lists and text,
|
||||
* one based by default.
|
||||
*/
|
||||
Blockly.Python.ONE_BASED_INDEXING = true;
|
||||
|
||||
/**
|
||||
* List of outer-inner pairings that do NOT require parentheses.
|
||||
* @type {!Array.<!Array.<number>>}
|
||||
@@ -258,10 +252,10 @@ Blockly.Python.scrub_ = function(block, code) {
|
||||
*/
|
||||
Blockly.Python.getAdjustedInt = function(block, atId, opt_delta, opt_negate) {
|
||||
var delta = opt_delta || 0;
|
||||
if (Blockly.Python.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
delta--;
|
||||
}
|
||||
var defaultAtIndex = Blockly.Python.ONE_BASED_INDEXING ? '1' : '0';
|
||||
var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0';
|
||||
var atOrder = delta ? Blockly.Python.ORDER_ADDITIVE :
|
||||
Blockly.Python.ORDER_NONE;
|
||||
var at = Blockly.Python.valueToCode(block, atId, atOrder) || defaultAtIndex;
|
||||
@@ -287,4 +281,3 @@ Blockly.Python.getAdjustedInt = function(block, atId, opt_delta, opt_negate) {
|
||||
}
|
||||
return at;
|
||||
};
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ Blockly.Python['lists_indexOf'] = function(block) {
|
||||
Blockly.Python.ORDER_NONE) || '[]';
|
||||
var list = Blockly.Python.valueToCode(block, 'VALUE',
|
||||
Blockly.Python.ORDER_NONE) || '\'\'';
|
||||
if (Blockly.Python.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
var errorIndex = ' 0';
|
||||
var firstIndexAdjustment = ' + 1';
|
||||
var lastIndexAdjustment = '';
|
||||
|
||||
@@ -103,7 +103,7 @@ Blockly.Python['text_indexOf'] = function(block) {
|
||||
var text = Blockly.Python.valueToCode(block, 'VALUE',
|
||||
Blockly.Python.ORDER_MEMBER) || '\'\'';
|
||||
var code = text + '.' + operator + '(' + substring + ')';
|
||||
if (Blockly.Python.ONE_BASED_INDEXING) {
|
||||
if (block.workspace.options.oneBasedIndex) {
|
||||
return [code + ' + 1', Blockly.Python.ORDER_ADDITIVE];
|
||||
}
|
||||
return [code, Blockly.Python.ORDER_FUNCTION_CALL];
|
||||
|
||||
Reference in New Issue
Block a user