ccmode: Paren List Symbols

 
 10.2.7 Parenthesis (Argument) List Symbols
 ------------------------------------------
 
 A number of syntactic symbols are associated with parenthesis lists,
 a.k.a argument lists, as found in function declarations and function
 calls.  This example illustrates these:
 
       1: void a_function( int line1,
       2:                  int line2 );
       3:
       4: void a_longer_function(
       5:     int line1,
       6:     int line2
       7:     );
       8:
       9: void call_them( int line1, int line2 )
      10: {
      11:     a_function(
      12:         line1,
      13:         line2
      14:         );
      15:
      16:     a_longer_function( line1,
      17:                        line2 );
      18: }
 
    Lines 5 and 12 are assigned ‘arglist-intro’ syntax since they are the
 first line following the open parenthesis, and lines 7 and 14 are
 assigned ‘arglist-close’ syntax since they contain the parenthesis that
 closes the argument list.
 
    Lines that continue argument lists can be assigned one of two
 syntactic symbols.  For example, Lines 2 and 17 are assigned
 ‘arglist-cont-nonempty’ syntax.  What this means is that they continue
 an argument list, but that the line containing the parenthesis that
 opens the list is _not empty_ following the open parenthesis.  Contrast
 this against lines 6 and 13 which are assigned ‘arglist-cont’ syntax.
 This is because the parenthesis that opens their argument lists is the
 last character on that line.
 
    Syntactic elements with ‘arglist-intro’, ‘arglist-cont-nonempty’, and
 ‘arglist-close’ contain two buffer positions: the anchor position (the
 beginning of the declaration or statement) and the position of the open
 parenthesis.  The latter position can be used in a line-up function
 (SeeLine-Up Functions).
 
    Note that there is no ‘arglist-open’ syntax.  This is because any
 parenthesis that opens an argument list, appearing on a separate line,
 is assigned the ‘statement-cont’ syntax instead.