Remove duplicated generators.

This commit is contained in:
Neil Fraser
2015-07-23 13:11:51 -07:00
parent ce6ad13fbb
commit bafb3016fd
14 changed files with 116 additions and 157 deletions

View File

@@ -29,24 +29,16 @@ goog.provide('Blockly.PHP.loops');
goog.require('Blockly.PHP');
Blockly.PHP['controls_repeat'] = function(block) {
// Repeat n times (internal number).
var repeats = Number(block.getFieldValue('TIMES'));
var branch = Blockly.PHP.statementToCode(block, 'DO');
branch = Blockly.PHP.addLoopTrap(branch, block.id);
var loopVar = Blockly.PHP.variableDB_.getDistinctName(
'count', Blockly.Variables.NAME_TYPE);
var code = 'for (' + loopVar + ' = 0; ' +
loopVar + ' < ' + repeats + '; ' +
loopVar + '++) {\n' +
branch + '}\n';
return code;
};
Blockly.PHP['controls_repeat_ext'] = function(block) {
// Repeat n times (external number).
var repeats = Blockly.PHP.valueToCode(block, 'TIMES',
Blockly.PHP.ORDER_ASSIGNMENT) || '0';
// Repeat n times.
if (block.getField('TIMES')) {
// Internal number.
var repeats = Number(block.getFieldValue('TIMES'));
} else {
// External number.
var repeats = Blockly.PHP.valueToCode(block, 'TIMES',
Blockly.PHP.ORDER_ASSIGNMENT) || '0';
}
var branch = Blockly.PHP.statementToCode(block, 'DO');
branch = Blockly.PHP.addLoopTrap(branch, block.id);
var code = '';
@@ -65,6 +57,8 @@ Blockly.PHP['controls_repeat_ext'] = function(block) {
return code;
};
Blockly.PHP['controls_repeat'] = Blockly.PHP['controls_repeat_ext'];
Blockly.PHP['controls_whileUntil'] = function(block) {
// Do while/until loop.
var until = block.getFieldValue('MODE') == 'UNTIL';

View File

@@ -219,8 +219,8 @@ Blockly.PHP['text_trim'] = function(block) {
};
var operator = OPERATORS[block.getFieldValue('MODE')];
var argument0 = Blockly.PHP.valueToCode(block, 'TEXT',
Blockly.PHP.ORDER_ATOMIC) || '\'\'';
return [ operator + '(' + argument0 + ')', Blockly.PHP.ORDER_ATOMIC];
Blockly.PHP.ORDER_NONE) || '\'\'';
return [ operator + '(' + argument0 + ')', Blockly.PHP.ORDER_FUNCTION_CALL];
};
Blockly.PHP['text_print'] = function(block) {
@@ -230,25 +230,22 @@ Blockly.PHP['text_print'] = function(block) {
return 'print(' + argument0 + ');\n';
};
Blockly.PHP['text_prompt'] = function(block) {
// Prompt function (internal message).
var msg = Blockly.PHP.quote_(block.getFieldValue('TEXT'));
Blockly.PHP['text_prompt_ext'] = function(block) {
// Prompt function.
if (block.getField('TEXT')) {
// Internal message.
var msg = Blockly.PHP.quote_(block.getFieldValue('TEXT'));
} else {
// External message.
var msg = Blockly.PHP.valueToCode(block, 'TEXT',
Blockly.PHP.ORDER_NONE) || '\'\'';
}
var code = 'readline(' + msg + ')';
var toNumber = block.getFieldValue('TYPE') == 'NUMBER';
if (toNumber) {
code = 'floatval(' + code + ')';
}
return [code, Blockly.PHP.ORDER_ATOMIC];
return [code, Blockly.PHP.ORDER_FUNCTION_CALL];
};
Blockly.PHP['text_prompt_ext'] = function(block) {
// Prompt function (external message).
var msg = Blockly.PHP.valueToCode(block, 'TEXT',
Blockly.PHP.ORDER_ATOMIC) || '\'\'';
var code = 'readline(' + msg + ')';
var toNumber = block.getFieldValue('TYPE') == 'NUMBER';
if (toNumber) {
code = 'floatval(' + code + ')';
}
return [code, Blockly.PHP.ORDER_ATOMIC];
};
Blockly.PHP['text_prompt'] = Blockly.PHP['text_prompt_ext'];