تولید کد

تولید کد فرآیند تبدیل بلوک‌های یک فضای کاری به رشته‌ای از کد است که می‌تواند اجرا شود.

تولید کد بسیار مهم است، زیرا این چیزی است که به بلوک‌های شما امکان می‌دهد واقعاً کارهایی را انجام دهند ، مانند ارزیابی عبارات حسابی، حرکت یک کاراکتر در پیچ و خم، یا پیکربندی یک فروشگاه آنلاین!

شما نمی توانید بلوک ها را مستقیماً "اجرا کنید". در عوض شما رشته های کد تولید می کنید و سپس آن ها را اجرا می کنید.

تولید کننده کد زبان

برای تولید کد، باید زبان متنی را که می خواهید تولید کنید انتخاب کنید. این به این دلیل است که هر زبان کد مولد مخصوص به خود را دارد.

یک مولد کد زبان (که معمولاً تولید کننده کد نامیده می شود) کلاسی است که قوانین تولید کدی را که مختص یک زبان خاص است، اما مختص یک بلوک منفرد نیست، کنترل می کند. به عنوان مثال، مواردی مانند قالب بندی نظرات، تورفتگی عبارات، و نقل قول از رشته ها را کنترل می کند.

Blockly 5 مولد کد داخلی را ارائه می دهد:

  • جاوا اسکریپت ES5
  • پایتون 3
  • لوا 5.1
  • دارت 2
  • PHP 7

اگر این فهرست شامل زبانی نیست که می‌خواهید برای آن کد تولید کنید، می‌توانید یک تولیدکننده کد زبان سفارشی ایجاد کنید. برای یک مثال ساده، به Build a custom generator codelab مراجعه کنید، که یک تولید کننده کد زبان JSON ایجاد می کند. برای مثال پیچیده‌تر، به تولیدکننده کد جاوا اسکریپت مراجعه کنید. توجه داشته باشید که برای هر بلوک داخلی که می‌خواهید استفاده کنید، باید مولدهای کد بلاک بنویسید.

مولدهای بلاک کد

هر بلوک مسئول تولید کد خود است. هنگامی که یک بلوک ایجاد می‌کنید، باید برای هر زبانی که می‌خواهید پشتیبانی کنید، یک تولیدکننده کد بلوک جداگانه بنویسید.

مولد کد بلوک تابعی است که کد آن بلوک را به صورت رشته ای برمی گرداند. به عنوان مثال، بلوکی که دو عدد را با هم مقایسه می‌کند، رشته‌ای از فرم '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) { /* ... */ };

مولدهای کد بلاک توسط مولدهای کد زبان فراخوانی می شوند.

برای اطلاعات بیشتر، به مولدهای Block-code مراجعه کنید.

کد تولید و اجرا کنید

برنامه شما می تواند در هر زمانی کد تولید کند. به عنوان مثال، ممکن است زمانی که کاربر نهایی روی دکمه ای کلیک می کند یا هر بار که کاربر تغییری ایجاد می کند، کد تولید کند.

بعد از اینکه کد را تولید کردید، باید نحوه اجرای آن را بیابید. تصمیم گیری در مورد نحوه اجرای آن بسیار کاربردی است و خارج از محدوده Blockly است.

برای اطلاعات بیشتر، به ایجاد و اجرای کد مراجعه کنید.