תרגול – בניית מנתח תחבירי

Preview:

DESCRIPTION

תרגול – בניית מנתח תחבירי. bison (בכל מקום בו כתוב yacc – הכוונה ל- bison ). ( yylex ). קובץ הגדרות משותף לשניהם: y.hpp. המנתח הנוצר על ידי Bison. קוראת ל- yylex ומקבלת אסימון ממנו. קישור בין flex ל- bison. bison מפעיל את המנתח הלקסיקלי ע"י קריאה ל- yylex . - PowerPoint PPT Presentation

Citation preview

תחבירי – מנתח בניית תרגול

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

ממבחן שאלה

Recommended