Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
• Introduction: | ||
• Conditions: | ||
• Copying: | GNU°ìÈÌ»ÈÍѸøÍµöÂú½ñ¤ÏBison¤òÊ£À½¤·¤¿¤ê¶¦Í¤·¤¿¤ê ¤¹¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤ë | |
¥Á¥å¡¼¥È¥ê¥¢¥ëÉôʬ: | ||
---|---|---|
• Concepts: | Bison¤òÍý²ò¤¹¤ë¤¿¤á¤Î´ðËܳµÇ°. | |
• Examples: | Bison¤ÎÍøÍѤò´Êñ¤ËÀâÌÀ¤·¤¿3¤Ä¤ÎÎã. | |
»²¾ÈÉôʬ: | ||
• Grammar File: | Bison¤ÎÀë¸À¤Èµ¬Â§¤ò½ñ¤¯. | |
• Interface: | ²òÀÏ´ï´Ø¿ôyyparse ¤Ø¤ÎC¸À¸ì¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹.
| |
• Algorithm: | Bison²òÀϴ郎¼Â¹Ô»þ¤Ëưºî¤¹¤ëÊýË¡. | |
• Error Recovery: | ¥¨¥é¡¼²óÉü¤Îµ¬Â§¤ò½ñ¤¯. | |
• Context Dependency: | ¸À¸ì¹½Ê¸¤¬Bison¤¬Î¨Ä¾¤Ë°·¤¦¤Ë¤ÏÊ£»¨¤¹¤®¤ë¤È¤¤Ë ²¿¤ò¤¹¤Ù¤¤«. | |
• Debugging: | ´Ö°ã¤Ã¤¿²òÀϤò¤¹¤ëBison²òÀÏ´ï¤Î¥Ç¥Ð¥Ã¥°¤ò¤¹¤ë. | |
• Invocation: | (²òÀϴ諒¡¼¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë)Bison¤ò¼Â¹Ô ¤¹¤ëÊýË¡. | |
• Table of Symbols: | Bison¤ÎÁ´¤Æ¤Î¥¡¼¥ï¡¼¥É¤ÎÀâÌÀ. | |
• Glossary: | ´ðËܳµÇ°¤ÎÀâÌÀ. | |
• Index: | ¥Æ¥¥¹¥È¤Ø¤ÎÁê¸ß»²¾È. | |
— The Detailed Node Listing — Bison¤Î³µÇ° | ||
• Language and Grammar: | ¿ô³Ø¤ÎȯÁÛ¤ÈÆ±¤¸¡¢¸À¸ì¤Èʸ̮¤Ë°Í¸¤·¤Ê¤¤Ê¸Ë¡. | |
• Grammar in Bison: | Bison¤Î¤¿¤á¤Ëʸˡ¤òɽ¸½¤¹¤ëÊýË¡. | |
• Semantic Values: | ¤½¤ì¤¾¤ì¤Î¥È¡¼¥¯¥ó¤äʸˡ¥°¥ë¡¼¥×¤Ï°ÕÌ£ÃÍ ¡ÊÀ°¿ô¤ÎÃÍ¡¢¼±Ê̻ҤÎ̾Á°¡¢¤Ê¤É¡£¡Ë ¤ò¼è¤ë¤³¤È¤¬¤Ç¤¤ë. | |
• Semantic Actions: | ¤½¤ì¤¾¤ì¤Îµ¬Â§¤ÏC¥³¡¼¥É¤ò´Þ¤ó¤À¥¢¥¯¥·¥ç¥ó¤ò»ý¤Ä¤³ ¤È¤¬¤Ç¤¤ë. | |
• Bison Parser: | Bison¤ÎÆþÎϤȽÐÎϤʲ¿¤Ç¡¢½ÐÎϤϤɤΤ褦¤Ë»È¤ï¤ì¤ë ¤«¡£ | |
• Stages: | Bison¤Îʸˡ¤ò½ñ¤¤¤Æ¼Â¹Ô¤µ¤»¤ë¼ê½ç. | |
• Grammar Layout: | Bisonʸˡ¥Õ¥¡¥¤¥ë¤ÎÁ´ÂΤι½Â¤. | |
Îã | ||
• RPN Calc: | µÕ¥Ý¡¼¥é¥ó¥ÉµË¡ÅÅÂî; ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤¬Ìµ¤¤¡¢ºÇ½é¤ÎÎã. | |
• Infix Calc: | Ãæ´Ö¡ÊÂå¿ô¡ËµË¡ÅÅÂî. ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤¬Æ³Æþ¤µ¤ì¤¿. | |
• Simple Error Recovery: | ¹½Ê¸¥¨¥é¡¼¤Î¸å¤â³¹Ô¤¹¤ë. | |
• Multi-function Calc: | ¥á¥â¥ê¤È»°³Ñ´Ø¿ôÉÕ¤¤ÎÅÅÂî. °ÕÌ£ÃͤËÊ£¿ô¤Î¥Ç¡¼¥¿·¿¤ò»ÈÍѤ¹¤ë. | |
• Exercises: | ¿µ¡Ç½ÅÅÂî¤ò²þÁ±¤¹¤ë¤¿¤á¤ÎÃåÁÛ. | |
µÕ¥Ý¡¼¥é¥ó¥ÉµË¡ÅÅÂî | ||
• Decls: | rpcalc¤Î¤¿¤á¤ÎBison¤ÈC¤ÎÀë¸À. | |
• Rules: | rpcalc¤Î¤¿¤á¤Îʸˡµ¬Â§¡£ÀâÌÀÉÕ¤. | |
• Lexer: | »ú¶ç²òÀÏ´ï. | |
• Main: | À©¸æ´Ø¿ô. | |
• Error: | ¥¨¥é¡¼Êó¹ð´Ø¿ô. | |
• Gen: | ʸˡ¥Õ¥¡¥¤¥ë¤ÇBison¤ò¼Â¹Ô¤¹¤ë. | |
• Comp: | ½ÐÎÏ¥³¡¼¥É¤ËC¥³¥ó¥Ñ¥¤¥é¤ò¼Â¹Ô¤¹¤ë. | |
| ||
• Rpcalc Input: | ||
• Rpcalc Line: | ||
• Rpcalc Expr: | ||
¿µ¡Ç½ÅÅÂî¡§ | ||
• Decl: | ¿µ¡Ç½ÅÅÂî¤Î¤¿¤á¤ÎBison¤ÎÀë¸À. | |
• Rules: | ÅÅÂî¤Î¤¿¤á¤Îʸˡµ¬Â§. | |
• Symtab: | µ¹æÉ½¤ò´ÉÍý¤¹¤ë¥µ¥Ö¥ë¡¼¥Á¥ó. | |
Bisonʸˡ¥Õ¥¡¥¤¥ë | ||
• Grammar Outline: | ʸˡ¥Õ¥¡¥¤¥ë¤Î³µÎ¬. | |
• Symbols: | ½ªÃ¼µ¹æ¤ÈÈó½ªÃ¼µ¹æ. | |
• Rules: | ʸˡµ¬Â§¤Î½ñ¤Êý. | |
• Recursion: | ºÆµ¢Åªµ¬Â§¤Î½ñ¤Êý. | |
• Semantics: | °ÕÌ£Ãͤȥ¢¥¯¥·¥ç¥ó. | |
• Declarations: | Á´¤Æ¤Î¼ïÎà¤ÎBisonÀë¸À¤ÎÀâÌÀ. | |
• Multiple Parsers: | °ì¤Ä¤Î¥×¥í¥°¥é¥à¤Ë°ì¤Ä¤è¤ê¿¤¯¤ÎBison¹½Ê¸²òÀÏ´ï¤ò Æþ¤ì¤ë. | |
Bisonʸˡ¤Î³µÍ× | ||
• C Declarations: | CÀë¸ÀÉô¤Î¹½Ê¸¤È»ÈÍÑË¡. | |
• Bison Declarations: | BisonÀë¸ÀÉô¤Î¹½Ê¸¤È»ÈÍÑË¡. | |
• Grammar Rules: | ʸˡµ¬Â§Éô¤Î¹½Ê¸¤È»ÈÍÑË¡. | |
• C Code: | ÄɲäÎC¥³¡¼¥ÉÉô¤Î¹½Ê¸¤È»ÈÍÑË¡. | |
¸À¸ì¤Î°ÕÌ£¤ÎÄêµÁ | ||
• Value Type: | Á´¤Æ¤Î°ÕÌ£Ãͤ˰ì¤Ä¤Î¥Ç¡¼¥¿·¿¤ò»ØÄꤹ¤ë. | |
• Multiple Types: | Ê£¿ô¤ÎÊ̤Υǡ¼¥¿·¿¤ò»ØÄꤹ¤ë. | |
• Actions: | ¥¢¥¯¥·¥ç¥ó¤Ïʸˡµ¬Â§¤Î°Ọ̃ŪÄêµÁ. | |
• Action Types: | ¥¢¥¯¥·¥ç¥ó¤¬Áàºî¤¹¤ë¥Ç¡¼¥¿·¿¤ò»ØÄꤹ¤ë. | |
• Mid-Rule Actions: | ¤Û¤È¤ó¤É¤Î¥¢¥¯¥·¥ç¥ó¤Ïµ¬Â§¤ÎºÇ¸å¤Ë¹Ô¤¯. ¤³¤ì¤Ïµ¬Â§¤ÎºÇÃæ¤Ç¡¢¤¤¤Ä¡¢¤Ê¤¼¡¢¤É¤Î¤è¤¦¤Ë Îã³°¥¢¥¯¥·¥ç¥ó¤ò»ÈÍѤ¹¤ë¤«¤ò»Ø¼¨¤¹¤ë. | |
BisonÀë¸À | ||
• Token Decl: | ½ªÃ¼µ¹æ¤òÀë¸À¤¹¤ë. | |
• Precedence Decl: | Í¥Àè½ç°Ì¤È·ë¹çµ¬Â§¤È¤È¤â¤Ë½ªÃ¼¤òÀë¸À¤¹¤ë. | |
• Union Decl: | Á´¤Æ¤Î°ÕÌ£Ãͤη¿¤Î½¸¹ç¤òÀë¸À¤¹¤ë. | |
• Type Decl: | Èó½ªÃ¼µ¹æ¤Î¤¿¤á¤Î·¿¤ÎÁªÂò¤òÀë¸À¤¹¤ë. | |
• Expect Decl: | ¥·¥Õ¥È/´Ô¸µ¾×ÆÍ¤Î·Ù¹ð¤òÍÞÀ©¤¹¤ë. | |
• Start Decl: | ³«»Ïµ¹æ¤ò»ØÄꤹ¤ë. | |
• Pure Decl: | ºÆÆþ¹½Ê¸²òÀÏ´ï¤òÍ׵᤹¤ë. | |
• Decl Summary: | Á´¤Æ¤ÎBisonÀë¸À¤Îɽ. | |
¹½Ê¸²òÀÏ´ï¤ÎC¸À¸ì¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹ | ||
• Parser Function: | yyparse ¤Î¸Æ¤ÓÊý¤È¡¢¤½¤ì¤¬ÊÖ¤¹¤â¤Î.
| |
• Lexical: | ¥È¡¼¥¯¥ó¤òÆÉ¤ß¹þ¤à´Ø¿ôyylex ¤òÄ󶡤·¤Ê¤±¤ì¤Ð
¤Ê¤é¤Ê¤¤.
| |
• Error Reporting: | ´Ø¿ôyyerror ¤òÄ󶡤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤.
| |
• Action Features: | ¥¢¥¯¥·¥ç¥ó¤Ç»È¤¨¤ëÆÃÊ̤ʵ¡Ç½. | |
»ú¶ç²òÀÏ´ï´Ø¿ô | ||
• Calling Convention: | yyparse ¤¬yylex ¤ò¸Æ¤ÖÊýË¡.
| |
• Token Values: | yylex ¤¬¤É¤Î¤è¤¦¤ËÆÉ¤ß¹þ¤ó¤À¥È¡¼¥¯¥ó¤Î
°ÕÌ£ÃͤòÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤«.
| |
• Token Positions: | ¥¢¥¯¥·¥ç¥ó¤¬Ë¾¤à¤È¤¤Ë¡¢¤É¤Î¤è¤¦¤Ëyylex ¤¬
¥Æ¥¥¹¥È¤Î°ÌÃ֡ʹԿô¤Ê¤É¡Ë¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤
¤«¡£
| |
• Pure Calling: | ½ã¿è¤Ê¹½Ê¸²òÀÏ´ï¤Ç¸Æ¤Ó½Ð¤··¿¤Î½¬´·¤¬¤É¤Î¤è¤¦¤Ë °ã¤¦¤« (see A Pure (Reentrant) Parser). | |
Bison¹½Ê¸²òÀÏ´ï¤Î¥¢¥ë¥´¥ê¥º¥à | ||
• Look-Ahead: | ¹½Ê¸²òÀÏ´ï¤Ï²¿¤ò¤¹¤ë¤«¤ò·è¤á¤ë¤È¤¤Ë°ì¤ÄÀè¤Î¥È¡¼¥¯ ¥ó¤ò¸«¤ë. | |
• Shift/Reduce: | ¾×ÆÍ: ¥·¥Õ¥È¤È´Ô¸µ¤ÎξÊý¤¬Í¸ú¤Ê¤È¤. | |
• Precedence: | ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Ï¾×ÆÍ¤ò²ò·è¤¹¤ë¤³¤È¤Çưºî¤¹¤ë. | |
• Contextual Precedence: | ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤¬Ê¸Ì®¤Ë°Í¸¤¹¤ë¤È¤. | |
• Parser States: | ¹½Ê¸²òÀÏ´ï¤Ï¥¹¥¿¥Ã¥¯ÉÕ¤¤Î͸¾õÂÖµ¡³£. | |
• Reduce/Reduce: | Ʊ¤¸¾õ¶·¤Ë2¤Ä¤Îµ¬Â§¤¬Å¬ÍѲÄǽ¤Ê¤È¤. | |
• Mystery Conflicts: | Àµ¤·¤¯¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë´Ô¸µ/´Ô¸µ¾×ÆÍ. | |
• Stack Overflow: | ¥¹¥¿¥Ã¥¯¤¬°ìÇդˤʤ俤Ȥ¤Ë²¿¤¬µ¯¤³¤ë¤¦¤«. ¤½¤ì¤ò Èò¤±¤ëÊýË¡. | |
±é»»»Ò¤ÎÍ¥Àè½ç°Ì | ||
• Why Precedence: | Í¥Àè½ç°Ì¤¬É¬Íפʤ³¤È¤ò¼¨¤¹Îã. | |
• Using Precedence: | Bisonʸˡ¤ÇÍ¥Àè½ç°Ì¤ò»ØÄꤹ¤ëÊýË¡. | |
• Precedence Examples: | Á°¤ÎÎã¤Ç¤³¤ì¤é¤Îµ¡Ç½¤¬»È¤ï¤ì¤¿ÊýË¡. | |
• How Precedence: | ¤É¤Î¤è¤¦¤Ëưºî¤¹¤ë¤«. | |
ʸ̮°Í¸À¤Î½èÍý | ||
• Semantic Tokens: | ¥È¡¼¥¯¥ó¹½Ê¸²òÀϤϰỌ̃Ūʸ̮¤Ë°Í¸¤¹¤ë. | |
• Lexical Tie-ins: | ¥È¡¼¥¯¥ó¹½Ê¸²òÀϤϹ½Ê¸ÅªÊ¸Ì®¤Ë°Í¸¤¹¤ë. | |
• Tie-in Recovery: | »ú¶ç·ë¤ÓÉÕ¤¤Ï¥¨¥é¡¼²óÉüµ¬Â§¤ò½ñ¤¯ÊýË¡¤Ë±Æ¶Á¤¹¤ë. | |
Bison¤Î¼Â¹Ô | ||
• Bison Options: | Á´¤Æ¤Î¥ª¥×¥·¥ç¥ó¤¬¾Ü¤·¤¯¡¢Ã»¤¤¥ª¥×¥·¥ç¥ó¤Ç¥¢¥ë¥Õ¥¡ ¥Ù¥Ã¥È½ç¤ËÀâÌÀ¤µ¤ì¤Æ¤¤¤ë. | |
• Option Cross Key: | Ť¤¥ª¥×¥·¥ç¥ó¤Î¥¢¥ë¥Õ¥¡¥Ã¥Ù¥Ã¥È½ç¤Î¥ê¥¹¥È. | |
• VMS Invocation: | VMS¤Ç¤ÎBison¤Î¥³¥Þ¥ó¥É¹½Ê¸. |
Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]