コードの生成

コード生成は、ワークスペースのブロックを実行可能なコード文字列に変換するプロセスです。

コード生成は非常に重要です。ブロックが実際に実行できるようにするためです。たとえば、ブロックは算術式の評価、迷路内のキャラクターの移動、オンライン ショップの構成などを実行できます。

Blockly はブロックを直接「実行」しません。代わりに、コード文字列を生成し、それを実行します。

コード生成ツール

コードを生成するには、コード ジェネレーター インスタンスを使用します。

次のコード スニペットは、ワークスペース内のブロックの JavaScript コードを生成する方法を示しています。

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

const code = javascriptGenerator.workspaceToCode(myWorkspace);

Blockly が提供するさまざまなコード生成ツールとそれらへのアクセス方法について詳しくは、言語コード生成ツールをご覧ください。

ブロックコード生成ツール

各ブロックには、生成するコードを定義するブロックコード生成ツールが関連付けられています。生成する言語ごとにブロックコード ジェネレータを定義する必要があります。

このコード スニペットは、「前方に移動」ブロックの JavaScript ブロックコード ジェネレータを定義します。

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

ブロックコード生成ツールを定義する方法については、ブロックコード生成ツールをご覧ください。

実行

コードを生成したら、そのコードを実行する方法を見つける必要があります。実行方法の決定はアプリケーション固有であり、Blockly の範囲外です。

コードを実行する方法の詳細については、コードを生成して実行するをご覧ください。