Generowanie kodu

Generowanie kodu to proces przekształcania bloków w obszarze roboczym w ciąg kodu, który można wykonać.

Generowanie kodu jest niezwykle ważne, ponieważ to od niego bloki mogą wykonywać różne czynności, np. oceniać wyrażenia arytmetyczne, przesuwać postać przez labirynt czy konfigurować sklep internetowy.

Blockly nie uruchamia bloków bezpośrednio. Zamiast tego trzeba je generować i wykonywać.

Generatory kodu

Do generowania kodu używasz instancji generatora kodów.

Ten fragment kodu pokazuje, jak wygenerować kod JavaScript dla bloków w obszarze roboczym:

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

const code = javascriptGenerator.workspaceToCode(myWorkspace);

Więcej informacji o różnych generatorach kodu udostępnianych przez Blockly i o dostępie do nich znajdziesz w artykule Omówienie generatora kodu.

Generatory kodów blokowych

Z każdym blokiem powiązany jest generator kodów blokowych, który określa generowany kod. Dla każdego języka, który chcesz wygenerować, musisz zdefiniować generator kodów blokowych.

Ten fragment kodu definiuje generator kodu blokowego JavaScriptu na potrzeby bloku „przesuń do przodu”:

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`;
}

Więcej informacji o definiowaniu generatorów kodu blokowego znajdziesz w artykule na temat generatorów kodów blokowych.

Realizacja

Po wygenerowaniu kodu musisz określić, jak go wykonać. Decyzja o tym, jak go wykonać, zależy od aplikacji i jest spoza zakresu Blockly.

Więcej informacji o sposobach wykonywania kodu znajdziesz w artykule o wykonywaniu kodu.