Home | History | Annotate | Line # | Download | only in indent
      1 /* $NetBSD: lsym_funcname.c,v 1.7 2023/06/17 22:09:24 rillig Exp $ */
      2 
      3 /*
      4  * Tests for the token lsym_funcname, which is the name of a function, but only
      5  * in a function definition, not in a declaration or a call expression.
      6  *
      7  * See also:
      8  *	lsym_word.c
      9  */
     10 
     11 //indent input
     12 void
     13 function(void)
     14 {
     15 	func();
     16 	(func)();
     17 	func(1, 2, 3);
     18 }
     19 //indent end
     20 
     21 //indent run-equals-input
     22 
     23 
     24 /*
     25  * The comment after the return type of a function definition is a code
     26  * comment, not a declaration comment.
     27  */
     28 //indent input
     29 void				// comment
     30 function_with_comment(void)
     31 {
     32 }
     33 //indent end
     34 
     35 //indent run-equals-input
     36 
     37 
     38 /*
     39  * The heuristics for telling a function definition and a function declaration
     40  * apart look at the remaining characters in a line but don't tokenize them.
     41  * Due to that, a ');' in a comment influences the heuristics.
     42  */
     43 //indent input
     44 // $ This ');' in the comment does not mark the end of the declaration.
     45 void heuristics_semicolon_comment(/* ); */) {}
     46 void heuristics_semicolon_no_comm(/* -- */) {}
     47 void heuristics_comma_comment(/* ), */) {}
     48 void heuristics_comma_no_comm(/* -- */) {}
     49 //indent end
     50 
     51 //indent run -di0
     52 void heuristics_semicolon_comment(/* ); */) {
     53 }
     54 void
     55 heuristics_semicolon_no_comm(/* -- */)
     56 {
     57 }
     58 void heuristics_comma_comment(/* ), */) {
     59 }
     60 void
     61 heuristics_comma_no_comm(/* -- */)
     62 {
     63 }
     64 //indent end
     65