Home | History | Annotate | Line # | Download | only in indent
lsym_unary_op.c revision 1.5
      1  1.5  rillig /* $NetBSD: lsym_unary_op.c,v 1.5 2022/04/24 10:36:37 rillig Exp $ */
      2  1.1  rillig 
      3  1.1  rillig /*
      4  1.1  rillig  * Tests for the token lsym_unary_op, which represents a unary operator.
      5  1.1  rillig  *
      6  1.1  rillig  * In an expression, a unary operator is written without blank next to its
      7  1.1  rillig  * argument.
      8  1.1  rillig  *
      9  1.1  rillig  * In a type name, the "unary operator" '*' represents the derivation of a
     10  1.1  rillig  * pointer type.
     11  1.1  rillig  */
     12  1.1  rillig 
     13  1.4  rillig //indent input
     14  1.3  rillig void
     15  1.3  rillig unary_operators(void)
     16  1.3  rillig {
     17  1.3  rillig 	/* In the order of appearance in C11 6.5. */
     18  1.3  rillig 	function(a++, a--, ++a, --a, &a, *a, +a, -a, ~a, !a);
     19  1.3  rillig }
     20  1.4  rillig //indent end
     21  1.1  rillig 
     22  1.4  rillig //indent run-equals-input
     23  1.5  rillig 
     24  1.5  rillig 
     25  1.5  rillig /*
     26  1.5  rillig  * The unary operators '+' and '-' can occur in long chains.  In these chains,
     27  1.5  rillig  * adjacent '+' must not be merged to '++' since that would be a different
     28  1.5  rillig  * token.  The same applies to '&', but that case is irrelevant in practice
     29  1.5  rillig  * since the address of an address cannot be taken.
     30  1.5  rillig  */
     31  1.5  rillig //indent input
     32  1.5  rillig int var=+3;
     33  1.5  rillig int mixed=+-+-+-+-+-+-+-+-+-+-+-+-+-3;
     34  1.5  rillig int count=~-~-~-~-~-~-~-~-~-~-~-~-~-3;
     35  1.5  rillig int same = + + + + + - - - - - 3;
     36  1.5  rillig //indent end
     37  1.5  rillig 
     38  1.5  rillig //indent run -di0
     39  1.5  rillig int var = +3;
     40  1.5  rillig int mixed = +-+-+-+-+-+-+-+-+-+-+-+-+-3;
     41  1.5  rillig int count = ~-~-~-~-~-~-~-~-~-~-~-~-~-3;
     42  1.5  rillig int same = + + + + +- - - - -3;
     43  1.5  rillig //indent end
     44  1.5  rillig 
     45  1.5  rillig 
     46  1.5  rillig /*
     47  1.5  rillig  * A special kind of unary operator is '->', which additionally suppresses the
     48  1.5  rillig  * next space.
     49  1.5  rillig  */
     50  1.5  rillig //indent input
     51  1.5  rillig int var = p -> member;
     52  1.5  rillig //indent end
     53  1.5  rillig 
     54  1.5  rillig //indent run -di0
     55  1.5  rillig int var = p->member;
     56  1.5  rillig //indent end
     57