Gerar código

A geração de código é o processo de transformar os blocos em um espaço de trabalho em uma string de código que pode ser executada.

A geração de código é extremamente importante, porque permite que os blocos façam coisas, 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 do 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 mais informações sobre os diferentes acionadores de código que o Blockly oferece e como acessá-los, consulte Acionadores de código de linguagem.

Geradores de código de bloco

Cada bloco tem um gerador de código de bloco associado que define qual código ele gera. Um gerador de código de bloco precisa ser definido para cada idioma que você quer gerar.

Estes snippets de código definem um gerador de código de bloco JavaScript para um bloco "mover para frente":

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 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. Decidir como executá-lo é muito específico para cada aplicativo e está fora do escopo do Blockly.

Para mais informações sobre como executar códigos, consulte Gerar e executar código.