PGen ěŘ ùćŚÔţĺŘ ŚŞ ÂÜþŚşõŚî ÀČóĄŮ ýŚÞĂûŘď ýÀČÞ§ ßČƧ ÀÞ¡õ ÀČĺ [email protected] ĆõÀÖõ 1 ŚŞ öŊ ýùÀÞä ŰøŚÔŮ .ťĺŘ üŞŚþďŚţąŚĺ ýŚûĆþŘďŊ ďŚî楹 ÀČóĄŮ ýŘÂŞ üØÞî ýďŘÃŞŘ PGen Ć Ş öŚ Şě ďĄ ţ ĺć Ó Č ňĄ Ů .ť ĺŘ ü ŞŚ þďŚ ţ ąŚ ĺ ýŚ ûďŘćĄ Þ œ ýùÀ þŘ ť ĺć ß þŘ ěŘ ýŚ ûďŘà ŞŘ Â Ú þć ßţ łĄœ éĚ ą ÂŞ .ťĺŘ ôĄĺÂõ üÆþĄœďĄţ ĺć ľø ď ěŘ ÂŮÝúê ÛŞŚ ì ø ÂŮùćŚ ĺ ďŚ Č ÆŞ ÛØł ßþŘ ÀČóĄŮ ÀĂþŊÂê řČŮÂŮ ßþŘ ĆŞ .ćďŘÀœ ýćŚþě ŰŚõÀÖõ ßţÆœŘć ĆŞ ěŚČœ ŚûďŘćĄÞœ ßþŘ öÀČÈî ŚûďĄţĺć ø 楳üõ öŚĺŊ ťĺŘ ÂÜþŚşõŚî ÀČóĄŮ ýŚûÇ£Ş ßþÂŮÝúõ ěŘ üØþ Ćî üŞŚþďŚţąŚĺ ýŚûďŘćĄÞœ ÃîÂÞţõ Àî ÀČóĄŮ ø üŞŚþùęŘø üĂãþ ÂÜþŚşõŚî ÀČóĄŮ ýŚûÇ£Ş ÂÚþć ýø ď ÂŞ ÀœŘĄŮüõ ÅþĄœÂÜþŚşõŚî .楳 .楳üõ üĺď ÂŞ üŞŚþďŚţąŚĺ ýŚûĆþŘďŊ ÀČóĄŮ ø PGen ŚŞ ďŚî ýùĄ¡œ ŘÀţŞŘ ľďŘÃð ßþŘ ďć ýŚ ûĆ þŘďŊ) PGen ü Żø  ą Ś Ş öŊ ŠŚ þďŚ ţ ąŚ ĺ Ć î ćĄ łü õ ùćďøŊ ýŘĆ œĄ Þ œ Â Ü þŚ ş õŚ î Å ş ĺ ýŘÃŻŘ ĆœĄÚİ ñÀõ ßþŘ ďć Ćî Àûćüõ öŚÈœ ŚúĂŮ ĆœĄÞœ ÂÜþŚşõŚî ßþŘ .ÀĂîüõ ďŚî (üŞŚþďŚţąŚĺ .ťÆČœ ÛõŚî ýěŚĺ ùćŚČŢ ÂÑœ ěŘ ĆŻø žČû ĆŞ ø ÀĂĂîüõ ÛõŚãŮ Ýû ŚŞ ÂÜþŚşõŚî Œþ ÓÜţ£õ PGen ŚŞ ďŚî ñĄňŘ 2 ďć Ćî ÀČĂî ťìć .ťĺŘ ŚûďŘćĄÞœ öÀČÈî ñøŘ ôŚð .ćďŘć É£Èõ ýĆܧÂõ ÀĂİ PGen ěŘ ùćŚÔţĺŘ ôŚð .ÀČĂØœ ťþŚÔî Ýû üşî Œþ ĆŞ ø ÀČĂî save üûŚð ÀĂİ ěŘ Âû ŚfÞţ§ Řď 楹 ýĆõŚœÂŞ ßȧ ßþŘ üŞŚþďŚţąŚĺ ýĆþŘďŊ öćÂî save ýÀãŞ ôŚð .ťĺŘ üŞŚþďŚţąŚĺ ýĆþŘďŊ ýùÀûŚÈõ ø ÀČóĄŮ ýÀãŞ .ťĺŘ ýÀãŞ ýŚûùćŚÔţĺŘ ýŘÂŞ Parse Table syntax graph 1 üŞŚþďŚţąŚĺ ýŚûďŘćĄÞœ ÇþŘÂþø ø Ýĺď 1.2 Main ôŚœ ĆŞ ýŘùÂð ŒŮ üêŘÂð ÀČĂîüõ 挟þŘ ďŘćĄÞœ Ýĺď ýŘÂŞ ÀþÀŻ ÀĂţÆõ Œþ Ćî üõŚÚĂû øć ýŘďŘć ďŘćĄÞœ ďŚţĺŘÂþø .ťĺŘ áø Âł éŘÂð âìŘø ďć éŘÂð ßþŘ .楳üõ 挟þŘ ĆõŚœÂŞ ÍĺĄŮ ýďŚî ťóŚ§ ÂČČçŮ ýŘÂŞ .ťĺŘ ñŚþ Ýĺď ôøć ťóŚ§ ø ùÂð Ýĺď ñøŘ ťóŚ§ .ťĺŘ ýďŚî ťóŚ§ .ÀČĂî ùćŚÔţĺŘ ťĺŘ ÓóŚ£õ öŚØČŢ øć ÛØł ĆŞ Ć¡Ôň ýĎŚŞ Ćî ýŘĆÞîć ěŘ ďŚţĺŘÂþø ŚûùÂð ÇþŘÂþø ø Ýĺď 1.1.2 Ćî Ć¡Ôň ěŘ üþŚŻ ďć ťĺŘ üêŚî ďŚî ßþŘ ýŘÂŞ .ťĺŘ ùÂð Ýĺď ďŘćĄÞœ ďŚţĺŘÂþø üþŘÀţŞŘ ťóŚ§ ýŘùďŚÞł ŚŞ ÙœďùŚČĺ ýŘùÂð řČŮÂŮ ßþŘ ĆŞ .ÀČĂî (šİ) ŒČÜî ÀČĂî Ýĺď ýŘùÂð ÀČûŘĄąüõ ŚÞł ø 楳üõ ôŚźœŘ ďŚî楹 ďĄÏ ĆŞ ýďŘÁðùďŚÞł ÀČĂČŞüõ Ćî ďĄÎœŚÞû .楳üõ 挟þŘ ÀþÀŻ ùÂð ýø ď ÂŞ ďĄÑĂõ ßþŘ ýŘÂŞ .ÀČûć ôŚźœŘ ÀČœŘĄŮüõ ďŚî øć ùÂð Œþ ŚŞ .ÀþďŘÀœ öŊ ďć üÈÖœ ŒÞî ĆŞ .ćďŘć 楯ø Final ø Delete ýĆĂþÃð øć ùÀł 쌪 Popup menu ďć .ÀČĂî ťĺŘď ŒČÜî Œþ .ÀČĂî üþŚúœ ùÂð Œþ Řď öŊ ÀČœŘĄŮüõ üõøć ŒÞî ĆŞ ø ÀČĂî íŚŢ Řď ùÂð ÀČœŘĄŮüõ üóøŘ ěŘ ÅŢ .ÀłŚśœ ÛÊţõ ýÂÚþć ýùÂð ĆŞ üóŚþ üÖþÂÏ ěŘ Ćî 楳üõ éÁ§ üŮďĄň ďć ŚúĂŮ ùÂð ďć ýÂČŹŚb Ů ÀþŚśœ Śf ŮÀäŚì ÂČČçŮ ßþŘ .ÀĂîüõ ÂČČçŮ ďŚî楹 ďĄÏ ĆŞ ýďŘÁð ùďŚÞł ùÂð Œþ éÁ§ ùÂð ,áø Âł ùÂð éÁ§ ěŘ ÀãŞ .ćďŘć áø Âł ùÂð Œþ éŘÂð Âû ÀČĂî ťìć .ÀłŚŞ ĆţłŘć ŚÞł ü§ŘÂÏ .楳üõ áø Âł ùÂð ,ùďŚÞł ßþÂţØİĄî ŚŞ ñŚþ ÇþŘÂþø ø Ýĺď 2.1.2 ŘÀśõ ýùÂð ěŘ Řď ğøŚõ ñŚþ Ýĺď ĆŞ ýďŚî ťóŚ§ ÂČČçŮ ěŘ ÀãŞ .ťĺŘ ñŚþ Ýĺď ďŚţĺŘÂþø ÂÚþć ťóŚ§ ćĄłüõ 쌪 ýŘùÂźĂŢ ÀČûć ôŚźœŘ ťĺďć Řď ďŚî ßþŘ ÂðŘ .ÀČĂî Śûď ø ÀČÈØŞ ÀÊÖõ ùÂð ťÞĺ ĆŞ (Token) öŚŞě ýùęŘø áĄœ ěŘ ?ťÆČİ ñŚþ ßþŘ ýćø ďø ÀČĂî É£Èõ Ćî ÀûŘĄąüõ ŚÞł ěŘ Ćî ĆŞ ĆõŚœÂŞ .ÀČĂî É£Èõ Řď öŊ ćďŘć üõĄúÔõ ýùęŘø ÂðŘ ø ?(Graph) ýĄ¡œ ýùęŘø Śþ ťĺŘ ÂðŘ ßČĂİ Ýû .ÀĂîüõ ĆêŚőŘ ćĄśœ ŰďĄň ďć Řď @ ťõĚä üõĄúÔõ ýùęŘø ýŘÀţŞŘ ĆŞ ďŚî楹 ďĄÏ ÀþÀŻ üêŘÂð ø Àûćüõ ÇþŚÞœ ïď ÃŞ éø § ŰďĄň ĆŞ Řď öŊ ÀłŚŞ ýĄ¡œ ýùęŘø áĄœ ěŘ ýćø ďø .ÀĂîüõ 挟þŘ öŊ ýŘÂŞ ďć Ćî ýŘùÂźĂŢ öŚÞû .ÀČĂî ťĺŘď ŒČÜî öŊ ýø ď ťĺŘ üêŚî ñŚþ Œþ ÂČČçŮ Śþ éÁ§ ýŘÂŞ b śì Ćî Řď üŮŚäĚÏŘ ÀČœŘĄŮüõ  ßþŘ ø 楳üõ 쌪 Àł Âîč ĎŚŞ .ÀČĂî ÇþŘÂþø ÀþŘùćÂî ćďŘø Ě ŚûéŘÂð 2.2 ťĺŘď ŒČÜî (ùÂð Śþ ñŚþ ěŘ ÂČè) Ć¡Ôň ěŘ üóŚą ýŚŻ Œþ ýø ď ŚûéŘÂð ßČŞ ťî§ ýŘÂŞ ĆŞ Œþ Âû ýø ď ÂŞ ÛČÜî ŚŞ .ťĺŘ ŚûéŘÂð ťÆČó ÛõŚł Ćî 楳üõ 쌪 Popup menu Œþ .ÀČĂî Ý ţÆ Čĺ ďć  ČČçŮ ÛČóć Ć Ş Ć î ÀČœŘÀŞ ÀþŚ Ş ÀþŘùć î ùćŚ Ô ţĺŘ ďŘćĄ Þ œ Ý ĺď ýŘÂ Ş PGen ü Þ þÀì ýŚ ûĆ £ Æ œ ěŘ Â ðŘ ýĆ£Æœ ĆŞ ŚûöŊ ÛþÀśŮ ýŘÂŞ ŒİĄî Àî Œþ ßţłĄœ ŚŞ ďŚî ßþŘ ĆţśóŘ .ÀĂţÆČœ ÛÞ§ ÛŞŚì Ć£Æœ ßþŘ ĆŞ ýďŘÁðùďŚÞł .ÀČĂî ťĺŘĄąďć ùÀĂÆþĄœ ěŘ ÀČœŘĄŮüõ ÛþŚÞŮ ŰďĄň ďć Ćî ťĺŘ ÂþÁŢ öŚØõŘÀþÀŻ ÀłŚŞ ĆţłŘć üþŚúœ ùÂð Œþ ÛìŘÀ§ ÀþŚŞ éŘÂð Âû 2 öŊ öćě ŚŞ Ćî ćďŘć 楯ø Ć¡Ôň ýĎŚŞ ďć ÃČœ ýŘĆÞîć .楳üõ ÛÖţĂõ öŊ ĆŞ ४Âõ ýĆ¡Ôň .ÀČĂî éÁ§ Řď ÀœŘùÀÈœ ùćŚÔţĺŘ Ćî üþŚûéŘÂð ÀČœŘĄŮüõ üŞŚþďŚţąŚĺ ýĆþŘďŊ ÇþŚÞœ ø ÀČóĄŮ 3.2 üÜÞä ýŘÂŞ .ÀČĂî ŠŚ£ţœŘ Řď Generate ýĆĂþÃð Run ýĄĂõ ěŘ üŞŚþďŚţąŚĺ ýĆþŘďŊ ÀČóĄŮ ýŘÂŞ f śì ÀþŚŞ öŊ öÀł ŠŚ£ţœŘ üõŚœ öŊ ýŘÂŞ Ćî ÀûŘĄąüõ ŚÞł ěŘ ĆœÂð ø ÀĂłŚŞ ùÀł ùÂČąč ŚûďŘćĄÞœ Ě ÓČňĄŮ üðď ÃŞ ĆŞ üÚţÆŞ öŚõě ßþŘ .ćÂŞüõ öŚõě ćŘÀąď ßþŘ ĆŞ ¿ĺŚŢ .ÀČĂî ùÂČąč Řď öŊ ø ÀČĂî ôŚźœŘ ďŚî ýùÀÞä ťÞÆì ĆܧÂõ ßþŘ ďć .ÀłŚŞ ĆČœŚŹ ÀĂİ ěŘ ÇČŞ ÀþŚśœ ñĄÞãõ ďĄÏ ĆŞ .ćďŘć ŚÞł b ůõ) ÀłŚŞ ĆţłŘć üóŚØłŘ öŚţþŚûďŘćĄÞœ ÂðŘ .楳üõ öĚäŘ ŚÞł ĆŞ (Common Prefix Error Ě ťĺŘ üóøÀŻ ÛõŚł Ćî 楳üõ 쌪 ýŘùÂźĂŢ ÀłŚŞ ñŚØłŘüŞ öŚţþŚûďŘćĄÞœ ÂðŘ ťþŚúœ ďć .楳üõ ŚŞ Ćî ťĺŘ ùÂð Œþ ÂÚœŚÈœ ñøÀŻ ßþŘ Óþćď Âû .ťĺŘ ÂÑœ ćďĄõ üŞŚþďŚţąŚĺ ýĆþŘďŊ öŚÞû Ćî ßþŘ ýŚûĆœŚą .ťĺŘ ýćø ďø Œþ ÂÚœŚÈœ ñøÀŻ ßþŘ öĄţĺ Âû ø 楳üõ ùćŘć öŚÈœ öŊ ýùďŚÞł ŘďŘć ŚûĆœŚą ýĆÞû Ćî ñøŘ áĚÏŘ .ťĺŘ áĚÏŘ Œþ ÛõŚł ÛìŘÀ§ ø Ćĺ ÛõŚł ÂůîŘÀ§ ñøÀŻ ßØÞõ ÛÞä ßþŘ .Àûć ôŚźœŘ ĆœŚą ßþŘ ďć ÀþŚŞ ŠŚþďŚţąŚĺ Ćî ťĺŘ (Action) üÜÞä ÀĂţÆû ÛÖţĂõ ÂÚþć Óþćď Œþ ĆŞ Řď ŠŚþďŚţąŚĺ Ćî Goto ÛÞä Ûůõ .ÀłŚŞ ĆţłŘć index Œþ ťĺŘ řĺŚĂõ ýŚŻ ďć ŚûöŊ ěŘ ùćŚÔţĺŘ ŚŞ ŠŚþďŚţąŚĺ Ćî ÀĂţÆû üþŚĂãõ ýŚûùęŘø ôĄĺ áĚÏŘ .ÀĂîüõ .Àœěüõ ŘÀň Řď üþŚĂãõ ýŚûßČŮø ď À œĄ Æ Ţ Ś Ş ñøÀ Ż .ć î ùÂ Č ąč Řď ñøÀ Ż öŘĄ Ůü õ Save ýĆ Þ îć öćÂ È ê Ś Ş ùÀ ûŚ È õ ěŘ Å Ţ üŞŚþćď üðćŚĺ ýŘÂŞ ñøÀŻ ßþŘ üÜãê ýĆ£Æœ ďć .楳üõ ùÂČąč (New Parse Table) npt ýŚûĆ£Æœ ďć .ťĺŘ ćŚþě öŊ Ýź§ ßþŘ ÂŞŚĂŞ ø 楳üõ ùÂČąč üĂţõ ŰďĄň ĆŞ ÝÈİ ŚŞ ŰĚØÈõ .楳 âêď ĆóŚbÆõ ßþŘ ťĺŘ ßØÞõ ýÀãŞ ĆœĄÞœ ÂÜþŚşõŚî ø ŠŚþďŚţąŚĺ ýĆõŚœÂŞ 3 ýěŚĺùćŚČŢ ÇþŚÞœ ÂÜþŚşõŚî ßþŘ üÜňŘ éÀû .楳üõ ĆŐŘďŘ ĆœĄÞœ ÂÜþŚşõŚî Œþ PGen ùŘÂÞû ĆŞ ßþŘ ďć .ÀĂîüõ ďŚî 楳üõ ÀČóĄŮ PGen ÍĺĄŮ Ćî üŞŚþďŚţąŚĺ ýĆþŘďŊ ŚŞ Ćî ťĺŘ üŞŚþďŚţąŚĺ ø ěŚ ĺÀ î , ŠŚ þùęŘø Ć ÜÞŻ ěŘ ÂÜþŚ ş õŚ î Œþ ýŚ ûÇ£ Ş ýĆ Č ÖŞ Ś Ş öŊ ÛõŚ ãŮ ýùĄ¡ œ ÇþŚ Þœ .楳üõ É£Èõ ŠŚþŚÎą öŚ õ ê Í ą Õ þÂ Ï ěŘ Ć î ť ĺŘ ýďĄ Ï Ć õŚ œÂ Ş ŋ ê Ç Č Ţ ďŚ ţ ąŚ ĺ ý þÁ ŢéŚ Î ã œŘ ýŘÂ Ş ť ĺŘ ďŘ ì Ć î ýćø ďø ß ţ õ ø ť ĺŘ PGen ü Żø  ą Ć î ü ŞŚ þďŚ ţ ąŚ ĺ ýĆ þŘďŊ Û þŚ ê øć ğďćŊ öŚŮÂÜþŚşõŚî ýùęø ÂŢ ôŚźœŘ ôŚÚĂû ďć ťĺŘ ßØÞõ ŚõŘ .ÀĂîüõ ťêŚþďć Řď 楳 üŞŚþďŚţąŚĺ/ĆÞŻÂŮ ÛþŚê øć Âû ğďćŊ ĎfĄÞãõ öĄİ .Àûć ôŚźœŘ Řď ďŚî ßþŘ öŚõÂê Íą ěŘ ďŚŞ Âû Ćî ÀłŚśœ řĺŚĂõ Scanner Code Generator Error Handler Command line 3 öŚõÂê Íą ěŘ ÛþŚê øć öŊ ôŚœ öćÂî ćďŘø ôŘÃóŘ ø .ťĺŘ ťŞŚŹ öŚŮÂÜþŚşõŚî ýĆãĺĄŮ ßȧ ďć ýćø ďø ýĆ ãĺĄŮ ôŚ ÚĂ û ďć Ć î 楳üõ Ć Č ňĄŮ ßþŘ ÂŞŚ Ă Ş .À Ă îüõ ÛØÈõ Ýû Řď üþŘćěñŚ ØłŘ À Ă þŊÂê ýŚûÛþŚê ğďćŊ üţĺć ø ÀČĂî comment Řď öŚõÂê Íą ěŘ ťêŚþďć ĆŞ ४Âõ ŕĄÎą öŚŮÂÜþŚşõŚî öŚ Şě ďć ýěøÀ Ă þø ýŚ ûÍ Č ¡ õ ďć öćŘć ğďćŊ ôŚ Ú Ă û ďć À Č Ă Ø œ ľĄ õŘ ê .À Č ûÀ Ş Řď ýćø ďø .ÀČĂî ùćŚÔţĺŘ \\ ěŘ ÀþŚŞ \ ýŚŻ ĆŞ ÀþŚŞ C/C++ ÂţÈČŞ ŰŚ¡ČőĄŮ ýŘÂŞ .ťĺŘ SLR(1) ýŚûŠŚþďŚţąŚĺ ĆŞŚÈõ ŠŚþďŚţąŚĺ ćÂØÜÞä ýùĄ¡œ .ÀČĂî ĆãŻŘÂõ ğďć ýŚûùø ÃŻ ĆŞ ø ÀČĂî ďø Âõ Řď ŠŚþďŚţąŚĺ Àî ÀČœŘĄŮüõ ÛČÞØŮ ŚfÊ£ł Řď ŠŚþùęŘø ÀþŚŞ ÛìŘÀ§ ĆœĄÞœ ÂÜþŚşõŚî ýŘÂŻŘ ěŘ ÇČŢ Ćî 楳üõ ÀČîŚŮ Ýû 쌪 Ç£Ş ßþÂŮùćŚĺ ŠŚþùęŘø ßţłĄœ ÀČœŘćüõ ÂÜþŚşõŚî ğďć ěŘ Ćî ďĄÎœŚÞû .ÀČþŚÞœ ýěŚĺùćŚČŢ ø ⪌٠ÛìŘÀ§ ŠŚþùęŘø ÛČÞØŮ ýŘÂŞ .ćÂî ýěŚĺ ùćŚČŢ Řď öŊ öŘĄŮüõ Íą üÞî ýćŘÀãŮ ďć ø ťĺŘ .ćŘć ÂČČçŮ ÀþŚŞ Řď Scanner ğĚî ěŘ NextToken 4
© Copyright 2025 Paperzz