Next: Literal Symbols, Previous: External Scope Symbols, Up: Syntactic 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 (see Line-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.