public static boolean if_command(PsiBuilder b, int l) {
    if (!recursion_guard_(b, l, "if_command")) return false;
    if (!nextTokenIs(b, IF)) return false;
    boolean r, p;
    Marker m = enter_section_(b, l, _NONE_, IF_COMMAND, null);
    r = consumeToken(b, IF);
    p = r; // pin = 1
    r = r && report_error_(b, compound_list(b, l + 1));
    r = p && report_error_(b, then_clause(b, l + 1)) && r;
    r = p && report_error_(b, if_command_3(b, l + 1)) && r;
    r = p && report_error_(b, if_command_4(b, l + 1)) && r;
    r = p && consumeToken(b, FI) && r;
    exit_section_(b, l, m, r, p, null);
    return r || p;
  }
public static boolean if_command(PsiBuilder b, int l)