Geração de código

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.