A geração de código é o processo de transformar os blocos de um espaço de trabalho em uma string de código que pode ser executada.
A geração de código é extremamente importante, porque é o que permite que seus blocos realmente realizem ações, como avaliar expressões aritméticas, mover um personagem por um labirinto ou configurar uma loja on-line.
O Blockly não "executa" blocos diretamente. Em vez disso, você gera strings de código e as executa.
Geradores de código
Para gerar código, use uma instância de gerador de código.
Este snippet de código mostra como gerar código JavaScript para os blocos em um espaço de trabalho:
// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';
const code = javascriptGenerator.workspaceToCode(myWorkspace);
Para ver mais informações sobre os diferentes geradores de código fornecidos pelo Blockly e como acessá-los, consulte Visão geral do gerador de código.
Geradores de código de bloco
Cada bloco tem um gerador associado que define o código gerado. É necessário definir um gerador de código de bloco para cada linguagem individual que você quer gerar.
O snippet de código abaixo define um gerador de código de bloco JavaScript para um bloco "avançar":
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`;
}
Para ver mais informações sobre como definir os geradores de código de bloco, consulte Geradores de código de bloco.
Execução
Depois de gerar o código, você precisa descobrir como executá-lo. A decisão de como executá-lo é muito específica do aplicativo e fora do escopo do Blockly.
Para mais informações sobre maneiras de executar códigos, consulte Execução de código.