코드 생성

코드 생성은 작업공간의 블록을 실행 가능한 코드 문자열로 변환하는 프로세스입니다.

코드 생성은 매우 중요합니다. 블록이 산술식 평가, 미로에서 캐릭터 이동, 온라인 상점 구성과 같은 작업을 실제로 실행할 수 있도록 하기 때문입니다.

블록을 직접 '실행'할 수는 없습니다. 대신 코드 문자열을 생성한 다음 실행합니다.

언어 코드 생성기

코드를 생성하려면 생성할 텍스트 기반 언어를 선택해야 합니다. 각 언어에는 자체 코드 생성기가 있기 때문입니다.

언어 코드 생성기 (일반적으로 코드 생성기라고 함)는 특정 언어에만 국한되지 않고 개별 블록에만 국한되지 않는 코드 생성 규칙을 처리하는 클래스입니다. 예를 들어 주석 형식 지정, 문장 들여쓰기, 문자열 따옴표 넣기 등을 처리합니다.

Blockly는 5가지 기본 제공 코드 생성기를 제공합니다.

  • JavaScript ES5
  • Python 3
  • Lua 5.1
  • Dart 2
  • PHP 7

이 목록에 코드를 생성하려는 언어가 포함되어 있지 않으면 맞춤 언어 코드 생성기를 만들 수 있습니다. 간단한 예는 JSON 언어 코드 생성기를 만드는 맞춤 생성기 빌드 Codelab을 참고하세요. 더 복잡한 예는 JavaScript 코드 생성기를 참고하세요. 또한 사용하려는 모든 내장 블록에 대해 블록 코드 생성기를 작성해야 합니다.

블록 코드 생성기

각 블록은 자체 코드를 생성합니다. 블록을 만들 때는 지원하려는 언어별로 별도의 블록 코드 생성기를 작성해야 합니다.

블록 코드 생성기는 해당 블록의 코드를 문자열로 반환하는 함수입니다. 예를 들어 두 숫자를 비교하는 블록은 'a < b' 형식의 문자열을 반환하고 if 문을 나타내는 블록은 'if (...) {\n...\n};\n' 형식의 문자열을 반환합니다.

import {javascriptGenerator} from 'blockly/javascript';
import {pythonGenerator} from 'blockly/python';

// Write block-code generators for JavaScript and Python.
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };
pythonGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };

블록 코드 생성기는 언어 코드 생성기에서 호출합니다.

자세한 내용은 블록 코드 생성기를 참고하세요.

코드 생성 및 실행

애플리케이션은 언제든지 코드를 생성할 수 있습니다. 예를 들어 최종 사용자가 버튼을 클릭하거나 사용자가 변경할 때마다 코드를 생성할 수 있습니다.

코드를 생성한 후에는 코드를 실행하는 방법을 알아야 합니다. 실행 방법을 결정하는 것은 애플리케이션에 따라 다르며 Blockly의 범위를 벗어납니다.

자세한 내용은 코드 생성 및 실행을 참고하세요.