תרגול – בניית מנתח תחבירי
DESCRIPTION
תרגול – בניית מנתח תחבירי. bison (בכל מקום בו כתוב yacc – הכוונה ל- bison ). ( yylex ). קובץ הגדרות משותף לשניהם: y.hpp. המנתח הנוצר על ידי Bison. קוראת ל- yylex ומקבלת אסימון ממנו. קישור בין flex ל- bison. bison מפעיל את המנתח הלקסיקלי ע"י קריאה ל- yylex . - PowerPoint PPT PresentationTRANSCRIPT
תחבירי – מנתח בניית תרגול
bison
כתוב) בו מקום -yaccבכל ל – (bisonהכוונה
(yylex)
קובץ הגדרות משותף לשניהם:
y.hpp
ידי על הנוצר Bisonהמנתח
ומקבלת אסימון ממנוyylexקוראת ל-
Bison
בין -flexקישור bisonל bison- " ל קריאה י ע הלקסיקלי המנתח את .yylexמפעיל
- ש האסימונים בין לתאם -flexצריך ש האסימונים לבין .bisonמייצר מכיר
yylval מטיפוס גלובלי משתנה היא, YYSTYPEהוא שלו המחדל .intשברירתאת להגדיר "YYSTYPEניתן , י ע למשל עצמאית
" 3וחלק 1חלק י ע שנוצר לקובץ שהם כמו .Bisonמועתקיםבחלק 2חלק שניתנות בהגדרות להשתמש הניתוח, 1יכול עבור למשל
הלקסיקלי.
חוקים
החוקים • ברשימת הראשון החוק של שמאל באגף המשתנההדקדוק של התחילי המשתנה הוא
•: הבאה בצורה ירשם חוק
•: וטרמינלים משתנים של הסמנטיות לתכונות גישההחוק - – של שמאל באגף המופיע המשתנה תכונות $$–n$ - (n>0)- ה הסימן חוקים ) nתכונות כולל החוק של ימין באגף
סמנטיים(A B C NUM ‘d’ E
$$ $1 $2 $3 $4 $5 הסימן
A B C NUM d E מתייחס ל-
מרקרים - חוקים
X
, εחוקי " למשל ריק חוק י ע | ;A : B Cנכתבים
) הלקסיקלי ) מהניתוח אסימון
תאסוציאטיביותמו
דיק
תמו
דיק
תחילי משתנה
עם bisonעבודה
• bison –d source.ypp• flex source.lex• g++ source.tab.cpp lex.yy.c
• bison –v source.ypp
קבצי ,tab.hמייצרtab.cpp
קובץ lex.yy.cמייצר
הרצה קובץ מייצר
קובץ עם source.outputמייצרהמעברים וטבלת האוטומט מצבי
t7.hppקובץ
t7.tab.hppקובץ
lexקובץ
bisonקובץ
שורה ) כל הבאים מהקלטים אחד כל עבור התוכנית פלט יהיה מה כתבושורה ירידת בסימן ’(n‘\מסתיימת
1. cbdbc2. cadbc3. caddc4. cadac
ממבחן שאלה