?????????д????????????????????????????????????????????????ι?????????Ч??????
????????????????????????????????????????д???????????????????????????????????д???С????????????????????????
????????????????????С????ù????????????????????????????????????Abdulaziz Ghuloum?????????????“???????????????”?????????????????????????С???????????????????е???????????????????????????????????????????????????????????е???С????????????????????????????????????????????????????????????????????????????????
?????????????μ???裬??д?????C?????????????????????????д???scheme?????????????Щ???????????????C???????????????????Щ???????????????????????????????????д?????????????????????????????????С????????????
??????????д??????????????????? babyc???????????????????????????е?????????
????int main() {
????return 2;
????}
??????б???????к??????????ж????????????????if???????????У???п??????????????
?????????????????????δ??????????? Flex ?? Bison ????????????????????????????ο?????????????????????????????????????
????"{" { return '{'; }
????"}" { return '}'; }
????"(" { return '('; }
????")" { return ')'; }
????";" { return ';'; }
????[0-9]+ { return NUMBER; }
????"return" { return RETURN; }
????"int" { return TYPE; }
????"main" { return IDENTIFIER; }
????????????????????
????function:
????TYPE IDENTIFIER '(' ')' '{' expression '}'
????;
????expression:
????RETURN NUMBER ';'
????;
???????????????????Щ??????????????32λ??X86?????????????????????????????????????????????????X86????????????
???????????????????????????
????.text
????.global _start # Tell the loader we want to start at _start.
????_start:
????movl    $2??%ebx # The argument to our system call.
????movl    $1??%eax # The system call number of sys_exit is 1.
????int     $0x80 # Send an interrupt
???????????????????????????????λ?????д??????????????????????????????????д?????
????Babyc ??????????????????????????????????????