/* $NetBSD: psym_if_expr_stmt.c,v 1.5 2025/01/07 03:14:24 rillig Exp $ */

/*
* Tests for the parser symbol psym_if_expr_stmt, which represents the state
* after reading the keyword 'if', the controlling expression and the
* statement for the 'then' branch.
*
* At this point, the 'if' statement is not necessarily complete, it can be
* completed with the keyword 'else' followed by a statement.
*
* Any token other than 'else' completes the 'if' statement.
*/

//indent input
void
function(void)
{
       if (cond)
               stmt();
       if (cond)
               stmt();
       else                    /* belongs to the second 'if' */
               stmt();
}
//indent end

//indent run-equals-input


//indent input
{
for (ever1)
for (ever2)
for (ever3)
if (cond1)
if (cond2)
if (cond3)
return;

stmt;
}
//indent end

//indent run
{
       for (ever1)
               for (ever2)
                       for (ever3)
                               if (cond1)
                                       if (cond2)
                                               if (cond3)
                                                       return;

       stmt;
}
//indent end