Next: , Previous: Syntactic Analysis, Up: Custom C Indent   [Contents][Index]


20.5.5.2 Âè2Ãʳ¬¡Ý¡Ý»ú²¼¤²·×»»

C¤Î»ú²¼¤²µ¡¹½¤Ï¡¢¹½Ê¸²òÀÏ¤ÇÆÀ¤é¤ì¤¿¹½Ê¸¹½À®Í×Áǥꥹ¥È c-syntactic-context¤ò»È¤Ã¤Æ¡¢¸½ºß¹Ô¤Î»ú²¼¤²Éý¤ò·×»»¤·¤Þ¤¹¡£ ¤³¤Î¥ê¥¹¥È¤Î³ÆÍ×ÁǤϡ¢¹½Ê¸¥·¥ó¥Ü¥ë¤ò´Þ¤à¥³¥ó¥¹¥»¥ë¤Ç¤¹¤¬¡¢ ¥Ð¥Ã¥Õ¥¡Æâ°ÌÃÖ¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£

¥ê¥¹¥È¤Î³ÆÍ×ÁǤϡ¢ºÇ½ªÅª¤ÊÁí»ú²¼¤²Î̤Ë2¤Ä¤ÎÊýË¡¤Ç´óÍ¿¤·¤Þ¤¹¡£ ¤Þ¤º¡¢³Æ¹½Ê¸¥·¥ó¥Ü¥ë¤Ë»ú²¼¤²¥ª¥Õ¥»¥Ã¥È¤òÂбþÉÕ¤±¤ëÏ¢Áۥꥹ¥È c-offsets-alist¤«¤éÍ×ÁǤòõ¤¹¤¿¤á¤Ë¹½Ê¸¥·¥ó¥Ü¥ë¤¬»È¤ï¤ì¤Þ¤¹¡£ ³Æ¹½Ê¸¹½À®¥·¥ó¥Ü¥ë¤Î¥ª¥Õ¥»¥Ã¥È¤òÁí»ú²¼¤²Î̤˲䨤ޤ¹¡£ ¤Ä¤®¤Ë¡¢¥ê¥¹¥È¤ÎÍ×ÁǤ˥Хåե¡Æâ°ÌÃÖ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ì¤Ð¡¢ ¤½¤Î²Õ½ê¤Î·å°ÌÃÖ¤ò»ú²¼¤²Î̤˲䨤ޤ¹¡£ ¤³¤ì¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È·å¿ô¤ò¤¹¤Ù¤Æ²Ã¤¨¤ë¤³¤È¤Ç¡¢Áí»ú²¼¤²Î̤¬µá¤Þ¤ê¤Þ¤¹¡£

°Ê²¼¤ÎÎã¤ÇC¤Î»ú²¼¤²µ¡¹½¤Îưºî¤òÀâÌÀ¤·¤Þ¤·¤ç¤¦¡£

1: void swap (int& a, int& b)
2: {
3:   int tmp = a;
4:   a = b;
5:   b = tmp;
6: }

3¹ÔÌܤ˥ݥ¤¥ó¥È¤¬¤¢¤Ã¤Æ¡¢¤½¤³¤ÇTAB¤ÈÂǤäƻú²¼¤²¤·Ä¾¤¹¤È¤·¤Þ¤·¤ç¤¦¡£ ¾å¡Êsee Syntactic Analysis¡Ë¤Ç¤âÀâÌÀ¤·¤Þ¤·¤¿¤¬¡¢ ¤½¤Î¹Ô¤ËÂФ¹¤ë¹½Ê¸¹½À®Í×Áǥꥹ¥È¤Ï¤Ä¤®¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

((defun-block-intro . 28))

¤³¤³¤Ç¤Ï¡¢¤Þ¤º¡¢Ï¢Áۥꥹ¥Èc-offsets-alist¤«¤é defun-block-intro¤òõ¤¹¤³¤È¤«¤é»Ï¤á¤Þ¤¹¡£ ¤½¤Î·ë²Ì¤¬À°¿ôÃÍ2¤Ç¤¢¤Ã¤¿¤È¤·¤Þ¤·¤ç¤¦¡£ ¤³¤ÎÃͤò·×»»Ãæ¤Î¹ç·×¡Ê0¤Ç½é´ü²½¤µ¤ì¤Æ¤¤¤ë¡Ë¤Ë²Ã¤¨¤Æ¡¢ Áí»ú²¼¤²Î̤϶õÇò2ʸ»ú¤È¹¹¿·¤µ¤ì¤Þ¤¹¡£

¤Ä¤®¤ÎÃʳ¬¤Ï¡¢¥Ð¥Ã¥Õ¥¡Æâ°ÌÃÖ28¤Î·å°ÌÃÖ¤òµá¤á¤ë¤³¤È¤Ç¤¹¡£ ¥Ð¥Ã¥Õ¥¡Æâ°ÌÃÖ28¤ÎÃæ³ç¸Ì¤Ï0·åÌܤˤ¢¤ë¤Î¤Ç¡¢ 0¤ò·×»»Ãæ¤Î¹ç·×¤Ë²Ã¤¨¤Þ¤¹¡£ 3¹ÔÌܤˤϹ½Ê¸Í×ÁǤ¬1¤Ä¤·¤«¤Ê¤¤¤Î¤Ç¡¢Áí»ú²¼¤²Î̤϶õÇò2ʸ»ú¤È¤Ê¤ê¤Þ¤¹¡£

1: int add (int val, int incr, int doit)
2: {
3:   if (doit)
4:     {
5:       return(val + incr);
6:     }
7:   return(val);
8: }

4¹ÔÌܤÇTAB¤ÈÂǤĤȡ¢Æ±¤¸²áÄø¤ò·«¤êÊÖ¤·¤Þ¤¹¤¬¡¢ °Û¤Ê¤ëÃͤò»È¤Ã¤Æ·×»»¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¹Ô¤ËÂФ¹¤ë¹½Ê¸¹½À®Í×Áǥꥹ¥È¤Ï¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¹¡£

((substatement-open . 43))

¤Þ¤º¤Ï¡¢¥·¥ó¥Ü¥ësubstatement-open¤òÏ¢Áۥꥹ¥È c-offsets-alist¤«¤éõ¤·¤Þ¤¹¡£ ¤³¤Î¥·¥ó¥Ü¥ë¤ËÂФ¹¤ë¥ª¥Õ¥»¥Ã¥È¤¬2¤Ç¤¢¤Ã¤¿¤È¤·¤Þ¤·¤ç¤¦¡£ ¤³¤Î»þÅÀ¤Ç·×»»Ãæ¤Î¹ç·×¤Ï2¡Ê0 + 2 = 2¡Ë¤Ç¤¹¡£ ¤Ä¤®¤Ë¡¢¥Ð¥Ã¥Õ¥¡Æâ°ÌÃÖ43¡Ê3¹ÔÌܤÎif¤Î‘i’¤Î°ÌÃ֡ˤΠ·å°ÌÃÖ2¤ò²Ã¤¨¤Þ¤¹¡£ ·ë²Ì¤È¤·¤Æ¡¢¶õÇò4ʸ»ú¤È¤¤¤¦Áí»ú²¼¤²Î̤¬µá¤Þ¤ê¤Þ¤¹¡£

¹Ô¤ò²òÀϤ·¤¿·ë²Ì¡¢c-offsets-alist¤Ë¸½¤ì¤Ê¤¤¹½Ê¸¥·¥ó¥Ü¥ë¤¬ ¤ß¤Ä¤«¤Ã¤¿¾ì¹ç¡¢¤½¤Î¥·¥ó¥Ü¥ë¤Ï̵»ë¤·¤Þ¤¹¡£ ¤·¤«¤·¡¢ÊÑ¿ôc-strict-syntax-p¤¬nil°Ê³°¤ÎÃͤǤ¢¤ì¤Ð¡¢ ¥¨¥é¡¼¤òÊó¹ð¤·¤Þ¤¹¡£