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