יצירת קוד

יצירת קוד היא התהליך שבו הופכים את הבלוק בסביבת העבודה למחרוזת של קוד שאפשר להריץ.

יצירת הקוד חשובה מאוד, כי היא מאפשרת לבלוקס לבצע פעולות, כמו הערכת ביטויים אריתמטיים, העברת דמות במבוך או הגדרת חנות אונליין.

אי אפשר להריץ בלוקים ישירות. במקום זאת, יוצרים מחרוזות קוד ומריצים אותן.

גנרטורים של קודי שפה

כדי ליצור קוד, צריך לבחור את השפה מבוססת הטקסט שרוצים ליצור. הסיבה לכך היא שלכל שפה יש גנרטור קוד משלה.

מחולל קוד שפה (שנקרא בדרך כלל מחולל קוד) הוא סוג שמטפל בכללים ליצירת קוד שספציפיים לשפה מסוימת, אבל לא ספציפיים לבלוק ספציפי. לדוגמה, הוא מטפל בדברים כמו עיצוב תגובות, הוספת הרחבות לשורות קוד והוספת קווים לשמירת רווחים בין שורות קוד.

ב-Blockly יש 5 מחוללי קוד מובנים:

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

אם השפה שעבורה אתם רוצים ליצור קוד לא מופיעה ברשימה הזו, תוכלו ליצור גנרטור מותאם אישית של קודי שפה. לדוגמה פשוטה, אפשר לעיין בקודלאב יצירת מחולל מותאם אישית, שבו יוצרים מחולל קוד בשפת JSON. לדוגמה מורכבת יותר, אפשר להיעזר במחולל הקוד של 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.

מידע נוסף זמין במאמר יצירה והרצה של קוד.