yaccplan9 - מקוון בענן

זוהי הפקודה yaccplan9 שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS

תָכְנִית:

שֵׁם


yacc - מהדר-מהדר נוסף

תַקצִיר


יאק [ אוֹפְּצִיָה ... ] דקדוק

תיאור


יאק ממירה דקדוק וקוד תרגום ללא הקשר למערכת של טבלאות עבור an
LR(1) מנתח ומתרגם. הדקדוק עשוי להיות מעורפל; כללי קדימות שצוינו הם
משמש לשבירת עמימות.

קובץ הפלט, y.tab.c, חייב להיות מורכב על ידי מהדר C כדי להפיק תוכנית This
יש לטעון את התוכנית עם פונקציית מנתח מילוני, yylex(void) (לעתים קרובות נוצר על ידי
לקס(1)), עם א main(int argc, char *argv[]) תוכנית, ועם שגרת טיפול בשגיאות,
yyerror(char*).

האפשרויות הן

-o תפוקה פלט ישיר לקובץ שצוין במקום y.tab.c.

-Dn צור קובץ y.debug, המכיל הודעות אבחון. כדי לשלב אותם
המנתח, קומפל אותו עם סמל קדם-מעבד yydebug מוּגדָר. הסכום של
פלט אבחון מהמנתח מוסדר לפי ערך n. הערך 0 מדווח
שגיאות; 1 מדווח על הפחתות; ערכים גבוהים יותר (עד 4) כוללים מידע נוסף
על מעברי מדינה.

-v צור קובץ y.output, המכיל תיאור של טבלאות הניתוח ושל
קונפליקטים הנובעים מאי בהירות בדקדוק.

-d צור קובץ y.tab.h, המכיל #define הצהרות הקשורות יאק-שהוקצה
'קודי אסימון' עם 'שמות אסימון' המוצהרים על ידי המשתמש. כלול אותו בקבצי מקור
אחר מאשר y.tab.c כדי לתת גישה לקודי האסימון.

-s גזע שנה את הקידומת של שמות הקבצים y.tab.c, y.tab.h, y.debug, ו y.output ל
גזע.

-S כתוב מנתח שמשתמש ב-Stdio במקום ב- הדפסה שגרות ב-libc.

-l השבת את הנחיות #line במנתח שנוצר.

-a צור מנתח שלוקח ארגומנט מסוג Yyarg ומעביר ארגומנט זה
לכל הפעלת פונקציית lexer, yylex. Yyarg מכיל פר-מופע
מצב ואיבר יחיד גלוי למשתמש, arg, מסוג void*.

מפרט של יאק עצמו זהה למעשה לגרסת UNIX המתוארת ב
ההפניות המוזכרות להלן. חוץ מה -D אפשרות, ההבדלים הרלוונטיים העיקריים הם:

הממשק לסביבת C הוא כברירת מחדל דרך ולא
; ה -S האפשרות הופכת את זה.

המנתח מקבל טקסט קלט UTF (ראה utf(7)), שיש לו כמה השפעות.
ראשית, ערך ההחזר של yylex() כבר לא מתאים ל-a קצר; שנית, ההתחלה
הערך עבור לא-טרמינלים הוא כעת 0xE000 במקום 257.

המנתח שנוצר יכול להיות רקורסיבי: פעולות יכולות לקרוא yyparse, למשל ל
ליישם מעין #include אמירה במתורגמן.

לבסוף, כמה פעולות פנימיות לא מתועדות של המנתח שונו, אשר
עלול להשפיע על תוכניות שיודעות יותר מדי על המבנה שלה.

השתמש ב-yaccplan9 באינטרנט באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows