אוקי...
אתה עובד עם VisualStudio לכן, יש לך כמה אפשרויות... אחת היא ליצור יישום MFC חדש בעזרת האשף, לגזור את מחלקת התצוגה ממחלקת הפורם כלומר : CFormView תהיה מחלקב שממנה נגזרת CView שם תוכל לבנות לך 3 פקדי RichEditTextBox... מקור כך פקד יהיה שונה, אחד יטען את נתוניו מקובץ שצריך לקמפל.. שני, יהיה חלון התוצאה, אתה יכול לקבל חלון התוצאה בעזרת כמה פקודות מתוך APU של Console למשל שלישי יהיה חלון השיגות, אני הייתי מגיד מחלקה לטיפול בשיגות, עם מונה שגיאות ושורות, מחלקה זו תקבל שורה מסויימת ממחלקה אחרת שתפקידה לסרוק את קובץ קוד המקור, אם מצאה שיגאה, סיטקס או לקסיקלית, תוסיף אותה לחלון השגיאות. תבנה לך למשל נערך של מלים שמורות, שמוכרות ע"י הקומפיילר שלך, כמו char, int, return וכדומה, אתה גם צריך לבדוק סיטקס, למשל איך גיליתה מילה printf אז ישנו סיטקס מסויים, אתה חייב לפינח את כל השורה ולבדוק סיטקס. ישנם עוד כמה דברים שקשורים בקומפילציה ובדיקה, תשאל אם יש שאלות. לסיכום: CCheckLex class to check error in syntax CReadClass to read lines from text file, and send them to CCheckClass GlobalResWords*[] will be a table for reserved words מצטער אם בילבלתי אותך או משהו, אבל זה מה שיש לי להגיד... אם אתה צריך דוגמאות, הנה למשל דוגמא :
struct ResWord { char *pString; TokenCode code; }; static ResWord rw2[] = { {"if",tcIF}, }; static ResWord rw3[] = { {"for",tcFOR},{"int",tcINT}, }; static ResWord rw4[] = { {"case",tcCASE},{"char",tcCHAR},{"else",tcELSE}, {"long",tcLONG},{"void",tcVOID}, }; static ResWord rw5[] = { {"break",tcBREAK},{"const",tcCONST},{"float",tcFLOAT}, }; static ResWord rw6[] = { {"double",tcDOUBLE},{"return",tcRETURN},{"switch",tcSWITCH}, };