La génération de code consiste à transformer les blocs d'un espace de travail en une chaîne de code pouvant être exécutée.
La génération de code est extrêmement importante, car c'est elle qui permet à vos blocs de faire des choses, comme évaluer des expressions arithmétiques, déplacer un personnage dans un labyrinthe ou configurer une boutique en ligne.
Blockly n'exécute pas directement les blocs. Vous générez plutôt des chaînes de code, puis les exécutez.
Générateurs de code
Pour générer du code, vous utilisez une instance de générateur de code.
Cet extrait de code montre comment générer du code JavaScript pour les blocs d'un espace de travail:
// javascriptGenerator is a code generator that makes JavaScript strings.
import {javascriptGenerator} from 'blockly/javascript';
const code = javascriptGenerator.workspaceToCode(myWorkspace);
Pour en savoir plus sur les différents générateurs de code fournis par Blockly et sur la façon d'y accéder, consultez la section Générateurs de code de langage.
Générateurs de code de bloc
Chaque bloc est associé à un générateur de code de bloc qui définit le code qu'il génère. Un générateur de code de bloc doit être défini pour chaque langue que vous souhaitez générer.
Ces extraits de code définissent un générateur de code de bloc JavaScript pour un bloc "avancer" :
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`;
}
Pour en savoir plus sur la définition de vos générateurs de code de bloc, consultez la section Générateurs de code de bloc.
Exécution
Une fois le code généré, vous devez trouver un moyen de l'exécuter. La manière de l'exécuter est très spécifique à l'application et n'entre pas dans le champ d'application de Blockly.
Pour en savoir plus sur les différentes façons d'exécuter du code, consultez la section Générer et exécuter du code.