コード生成は、ワークスペースのブロックを実行可能なコード文字列に変換するプロセスです。
コード生成は非常に重要です。ブロックが実際に実行できるようにするためです。たとえば、ブロックは算術式の評価、迷路内のキャラクターの移動、オンライン ショップの構成などを実行できます。
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 の範囲外です。
コードを実行する方法の詳細については、コードを生成して実行するをご覧ください。