mirror of
https://github.com/google/blockly.git
synced 2026-01-09 01:50:11 +01:00
feat: add getVariableName and getProcedureName to CodeGenerator (#7445)
* feat: add getVariableName and getProcedureName to CodeGenerator * feat: make nameDB_ public * feat: update block code generators to use new APIs * chore: fix build * chore: remove unused imports
This commit is contained in:
committed by
GitHub
parent
b0a7c004a9
commit
68261e5dd9
@@ -65,8 +65,8 @@ export function controls_whileUntil(block, generator) {
|
||||
export function controls_for(block, generator) {
|
||||
// For loop.
|
||||
const variable0 =
|
||||
generator.nameDB_.getName(
|
||||
block.getFieldValue('VAR'), NameType.VARIABLE);
|
||||
generator.getVariableName(
|
||||
block.getFieldValue('VAR'));
|
||||
const argument0 =
|
||||
generator.valueToCode(block, 'FROM', Order.ASSIGNMENT) || '0';
|
||||
const argument1 =
|
||||
@@ -128,8 +128,7 @@ export function controls_for(block, generator) {
|
||||
export function controls_forEach(block, generator) {
|
||||
// For each loop.
|
||||
const variable0 =
|
||||
generator.nameDB_.getName(
|
||||
block.getFieldValue('VAR'), NameType.VARIABLE);
|
||||
generator.getVariableName(block.getFieldValue('VAR'));
|
||||
const argument0 =
|
||||
generator.valueToCode(block, 'LIST', Order.ASSIGNMENT) ||
|
||||
'[]';
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
// Former goog.module ID: Blockly.JavaScript.math
|
||||
|
||||
import {NameType} from '../../core/names.js';
|
||||
import {Order} from './javascript_generator.js';
|
||||
|
||||
|
||||
@@ -202,8 +201,7 @@ export function math_change(block, generator) {
|
||||
// Add to a variable in place.
|
||||
const argument0 = generator.valueToCode(block, 'DELTA',
|
||||
Order.ADDITION) || '0';
|
||||
const varName = generator.nameDB_.getName(
|
||||
block.getFieldValue('VAR'), NameType.VARIABLE);
|
||||
const varName = generator.getVariableName(block.getFieldValue('VAR'));
|
||||
return varName + ' = (typeof ' + varName + ' === \'number\' ? ' + varName +
|
||||
' : 0) + ' + argument0 + ';\n';
|
||||
};
|
||||
|
||||
@@ -10,14 +10,12 @@
|
||||
|
||||
// Former goog.module ID: Blockly.JavaScript.procedures
|
||||
|
||||
import {NameType} from '../../core/names.js';
|
||||
import {Order} from './javascript_generator.js';
|
||||
|
||||
|
||||
export function procedures_defreturn(block, generator) {
|
||||
// Define a procedure with a return value.
|
||||
const funcName = generator.nameDB_.getName(
|
||||
block.getFieldValue('NAME'), NameType.PROCEDURE);
|
||||
const funcName = generator.getProcedureName(block.getFieldValue('NAME'));
|
||||
let xfix1 = '';
|
||||
if (generator.STATEMENT_PREFIX) {
|
||||
xfix1 += generator.injectId(
|
||||
@@ -52,7 +50,7 @@ export function procedures_defreturn(block, generator) {
|
||||
const variables = block.getVars();
|
||||
for (let i = 0; i < variables.length; i++) {
|
||||
args[i] =
|
||||
generator.nameDB_.getName(variables[i], NameType.VARIABLE);
|
||||
generator.getVariableName(variables[i]);
|
||||
}
|
||||
let code = 'function ' + funcName + '(' + args.join(', ') + ') {\n' + xfix1 +
|
||||
loopTrap + branch + xfix2 + returnValue + '}';
|
||||
@@ -68,8 +66,7 @@ export const procedures_defnoreturn = procedures_defreturn;
|
||||
|
||||
export function procedures_callreturn(block, generator) {
|
||||
// Call a procedure with a return value.
|
||||
const funcName = generator.nameDB_.getName(
|
||||
block.getFieldValue('NAME'), NameType.PROCEDURE);
|
||||
const funcName = generator.getProcedureName(block.getFieldValue('NAME'));
|
||||
const args = [];
|
||||
const variables = block.getVars();
|
||||
for (let i = 0; i < variables.length; i++) {
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
|
||||
// Former goog.module ID: Blockly.JavaScript.texts
|
||||
|
||||
import {NameType} from '../../core/names.js';
|
||||
import {Order} from './javascript_generator.js';
|
||||
|
||||
|
||||
@@ -101,8 +100,7 @@ export function text_join(block, generator) {
|
||||
|
||||
export function text_append(block, generator) {
|
||||
// Append to a variable in place.
|
||||
const varName = generator.nameDB_.getName(
|
||||
block.getFieldValue('VAR'), NameType.VARIABLE);
|
||||
const varName = generator.getVariableName(block.getFieldValue('VAR'));
|
||||
const value = generator.valueToCode(block, 'TEXT',
|
||||
Order.NONE) || "''";
|
||||
const code = varName + ' += ' +
|
||||
|
||||
@@ -10,14 +10,12 @@
|
||||
|
||||
// Former goog.module ID: Blockly.JavaScript.variables
|
||||
|
||||
import {NameType} from '../../core/names.js';
|
||||
import {Order} from './javascript_generator.js';
|
||||
|
||||
|
||||
export function variables_get(block, generator) {
|
||||
// Variable getter.
|
||||
const code = generator.nameDB_.getName(block.getFieldValue('VAR'),
|
||||
NameType.VARIABLE);
|
||||
const code = generator.getVariableName(block.getFieldValue('VAR'));
|
||||
return [code, Order.ATOMIC];
|
||||
};
|
||||
|
||||
@@ -25,7 +23,6 @@ export function variables_set(block, generator) {
|
||||
// Variable setter.
|
||||
const argument0 = generator.valueToCode(
|
||||
block, 'VALUE', Order.ASSIGNMENT) || '0';
|
||||
const varName = generator.nameDB_.getName(
|
||||
block.getFieldValue('VAR'), NameType.VARIABLE);
|
||||
const varName = generator.getVariableName(block.getFieldValue('VAR'));
|
||||
return varName + ' = ' + argument0 + ';\n';
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user