Генерация кода

Генерация кода — это процесс преобразования блоков рабочей области в строку кода, которую можно выполнить.

Генерация кода чрезвычайно важна, поскольку именно она позволяет вашим блокам выполнять определенные действия, например вычислять арифметические выражения, перемещать персонажа по лабиринту или настраивать интернет-магазин!

Blockly не «запускает» блоки напрямую. Вместо этого вы генерируете строки кода, а затем выполняете их.

Генераторы кода

Для генерации кода вы используете экземпляр генератора кода.

В этом фрагменте кода показано, как генерировать код JavaScript для блоков в рабочей области:

// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';

const code = javascriptGenerator.workspaceToCode(myWorkspace);

Дополнительную информацию о различных генераторах кода, которые предоставляет Blockly, и о том, как получить к ним доступ, см. в разделе Обзор генератора кода .

Генераторы блочного кода

Каждый блок имеет связанный с ним генератор блочного кода, который определяет, какой код он генерирует. Генератор блочного кода должен быть определен для каждого отдельного языка, который вы хотите сгенерировать.

Этот фрагмент кода определяет генератор блочного кода JavaScript для блока «движения вперед»:

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  const steps = block.getFieldValue('FIELD_NAME');
  // moveForward is a function you would have to define yourself and provide
  // within your execution context.
  return `moveForward(${steps});\n`;
}

Дополнительные сведения о том, как определить генераторы блочного кода, см. в разделе Генераторы блочного кода .

Исполнение

После того, как вы сгенерировали код, вам нужно выяснить, как его выполнить. Решение о том, как его выполнить, очень зависит от приложения и выходит за рамки Blockly.

Дополнительные сведения о способах выполнения кода см. в разделе Выполнение кода .