कोड जनरेट करने की प्रोसेस में, वर्कस्पेस पर मौजूद ब्लॉक को कोड की ऐसी स्ट्रिंग में बदला जाता है जिसे चलाया जा सकता है.
कोड जनरेशन काफ़ी अहम है, क्योंकि इससे आपके ब्लॉक असल में कुछ कर पाते हैं. जैसे, अंकगणितीय एक्सप्रेशन का आकलन करना, किसी पात्र को पहेली से बाहर निकालना या ऑनलाइन शॉप को कॉन्फ़िगर करना!
ब्लॉक को सीधे "चालू" नहीं किया जा सकता. इसके बजाय, कोड स्ट्रिंग जनरेट की जाती हैं और फिर उन्हें कार्यान्वित किया जाता है.
भाषा कोड जनरेटर
कोड जनरेट करने के लिए, आपको यह चुनना होगा कि आपको टेक्स्ट पर आधारित कौनसी भाषा जनरेट करनी है. ऐसा इसलिए होता है, क्योंकि हर भाषा का अपना कोड जनरेटर होता है.
भाषा कोड जनरेटर (आम तौर पर इसे कोड जनरेटर कहा जाता है) एक ऐसी क्लास है जो किसी खास भाषा के लिए कोड जनरेट करने के नियमों को मैनेज करती है. हालांकि, यह किसी खास ब्लॉक के लिए नहीं होती. उदाहरण के लिए, यह टिप्पणियों को फ़ॉर्मैट करने, स्टेटमेंट को इंडेंट करने, और स्ट्रिंग को कोट करने जैसी चीज़ों को मैनेज करता है.
Blockly में, पहले से पांच कोड जनरेटर मौजूद होते हैं:
- JavaScript ES5
- Python 3
- Lua 5.1
- Dart 2
- PHP 7
अगर इस सूची में वह भाषा शामिल नहीं है जिसके लिए आपको कोड जनरेट करना है, तो आपके पास अपनी पसंद के मुताबिक भाषा कोड जनरेटर बनाने का विकल्प है. इसका एक आसान उदाहरण देखने के लिए, पसंद के मुताबिक जनरेटर बनाएं कोडलैब देखें. यह JSON भाषा का कोड जनरेटर बनाता है. ज़्यादा जटिल उदाहरण के लिए, JavaScript कोड जनरेटर देखें. ध्यान दें कि आपको उन सभी बिल्ट-इन ब्लॉक के लिए ब्लॉक-कोड जनरेटर भी लिखने होंगे जिनका इस्तेमाल करना है.
ब्लॉक-कोड जनरेटर
हर ब्लॉक अपने कोड को जनरेट करने के लिए ज़िम्मेदार होता है. ब्लॉक बनाते समय, आपको हर उस भाषा के लिए अलग-अलग ब्लॉक-कोड जनरेटर लिखना होगा जिसे आपको इस्तेमाल करना है.
ब्लॉक-कोड जनरेटर एक ऐसा फ़ंक्शन है जो उस ब्लॉक के कोड को स्ट्रिंग के तौर पर दिखाता है. उदाहरण के लिए, दो संख्याओं की तुलना करने वाला ब्लॉक, 'a < b'
फ़ॉर्मैट की स्ट्रिंग दिखाता है. साथ ही, अगर स्टेटमेंट दिखाने वाला ब्लॉक, '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 के दायरे से बाहर है.
ज़्यादा जानकारी के लिए, कोड जनरेट करना और चलाना लेख पढ़ें.