python compiler project
- 1. :ﺃﻭﻻ: ﺍﻟﺘﺤﻠﻴﻞ ﺍﻟﻤﻔﺮﺩﺍﺗﻲ
:ﺃﻣﻮﺭ ﻣﻤﻴﺰﺓ ﺗﻢ ﻣﻌﺎﻟﺠﺘﻬﺎ ﻓﻲ ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﻣﻔﺮﺩﺍﺕ ﺍﻟﻠﻐﺔ
●ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺍﻷﻧﻤﺎﻁ ﺍﻟﺘﺎﻟﻴﺔ
octinteger "0"("o"|"O"){octdigit}+|"0"{octdigit}+
octdigit [07]
hexinteger "0"("x"|"X"){hexdigit}+
hexdigit {digit}|[af]|[AF]
digit [09]
bininteger "0"("b"|"B"){bindigit}+
bindigit "0"|"1"
●multilinecomment ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﺍﻟﻤﺘﻌﺪﺩﺓ ﺍﻷﺳﻄﺮ
%option c++
%x multilinecomment
"/*" {colNum+=2; BEGIN(multilinecomment);}
<multilinecomment>"n" {lineNum+=1; BEGIN(multilinecomment);}
<multilinecomment>"*"*[^"/"] {colNum+=strlen(yytext); }
<multilinecomment>[^"*"]* {colNum+=strlen(yytext); }
<multilinecomment>"*"+"/" {colNum+=strlen(yytext); BEGIN(INITIAL);}
●:(EOF Pattern) ﻓﻲ ﺇﻧﻬﺎء ﺍﻟﻤﻠﻒ EOF ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻨﻤﻂ
<<EOF>> {return END_OF_FILE;}
ﻣﻨﻪ ﻭﻣﻠﻒ ﺁﺧﺮ ﻟﻄﺒﺎﻋﺔ ﺍﻟﻘﻮﺍﻋﺪ ﻭﺍﻷﺧﻄﺎء ﺍﻟﺤﺎﺻﻠﺔ ﻋﻠﻴﻪ ﺗﺴﻬﻴﻼcode ﺣﻴﺚ ﻗﻤﻨﺎ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻣﻠﻒ ﻟﻘﺮﺍءﺓ ﺍﻟـ
.ﻟﻠﻌﻤﻞ
:ﺍﻷﺧﻄﺎء ﺍﻟﻤﻌﺎﻟﺠﺔ ﻓﻲ ﺍﻟﻘﻮﺍﻋﺪ
●: ﻭﺍﻟﺘﻲ ﻫﻲsimple_stmt_list ﻏﻴﺎﺏ ﺍﻟﻔﺎﺻﻠﺔ ﺍﻟﻤﻨﻘﻮﻃﺔ ﻓﻲ ﻧﻬﺎﻳﺔ ﻛﻞ ﺗﻌﻠﻴﻤﺔ ﻣﻦ ﺗﻌﻠﻴﻤﺎﺕ
expr_list error
assert_stmt error
assignment_stmt error
PASS error
del_stmt error
1