1 1.4 rillig /* $NetBSD: lsym_return.c,v 1.4 2022/04/24 09:04:12 rillig Exp $ */ 2 1.1 rillig 3 1.1 rillig /* 4 1.1 rillig * Tests for the token lsym_return, which represents the keyword 'return' that 5 1.1 rillig * starts a 'return' statement for leaving the execution of a function. 6 1.1 rillig */ 7 1.1 rillig 8 1.2 rillig /* 9 1.2 rillig * Return statements having a single-line expression are simple to format. 10 1.2 rillig * Since 'return' is not a function name, there is a space between the 11 1.2 rillig * 'return' and the '('. 12 1.2 rillig */ 13 1.4 rillig //indent input 14 1.2 rillig void 15 1.2 rillig function(bool cond) 16 1.2 rillig { 17 1.2 rillig if (cond) 18 1.2 rillig return; 19 1.2 rillig } 20 1.2 rillig 21 1.2 rillig int 22 1.2 rillig calculate(int a, int b) 23 1.2 rillig { 24 1.2 rillig return a; 25 1.2 rillig return (b); 26 1.2 rillig return (((a))) + b; 27 1.2 rillig return calculate(b, a); 28 1.2 rillig } 29 1.4 rillig //indent end 30 1.1 rillig 31 1.4 rillig //indent run-equals-input 32 1.2 rillig 33 1.2 rillig 34 1.2 rillig /* 35 1.2 rillig * Returning complex expressions may spread the expression over several lines. 36 1.2 rillig * The exact formatting depends on the option '-lp'. 37 1.2 rillig */ 38 1.4 rillig //indent input 39 1.2 rillig int 40 1.2 rillig multi_line(int a) 41 1.2 rillig { 42 1.2 rillig return calculate(3, 43 1.2 rillig 4); 44 1.2 rillig return calculate( 45 1.2 rillig 3, 46 1.2 rillig 4); 47 1.2 rillig return calculate( 48 1.2 rillig 3, 49 1.2 rillig 4 50 1.2 rillig ); 51 1.2 rillig } 52 1.4 rillig //indent end 53 1.2 rillig 54 1.4 rillig //indent run-equals-input 55 1.2 rillig 56 1.4 rillig //indent run -nlp 57 1.2 rillig int 58 1.2 rillig multi_line(int a) 59 1.2 rillig { 60 1.2 rillig return calculate(3, 61 1.2 rillig 4); 62 1.2 rillig return calculate( 63 1.2 rillig 3, 64 1.2 rillig 4); 65 1.2 rillig return calculate( 66 1.2 rillig 3, 67 1.2 rillig 4 68 1.2 rillig ); 69 1.2 rillig } 70 1.4 rillig //indent end 71