GitHub

@@ -3327,6 +3327,24 @@ primary : literal

33273327

node *in_clause = new_in(p, $5, NULL, $7, FALSE);

33283328

$$ = new_case_match(p, $2, cons(in_clause, $8));

33293329

}

3330+

| keyword_case expr_value opt_terms

3331+

keyword_in p_expr modifier_if expr_value then

3332+

compstmt

3333+

in_clauses

3334+

keyword_end

3335+

{

3336+

node *in_clause = new_in(p, $5, $7, $9, FALSE);

3337+

$$ = new_case_match(p, $2, cons(in_clause, $10));

3338+

}

3339+

| keyword_case expr_value opt_terms

3340+

keyword_in p_expr modifier_unless expr_value then

3341+

compstmt

3342+

in_clauses

3343+

keyword_end

3344+

{

3345+

node *in_clause = new_in(p, $5, $7, $9, TRUE);

3346+

$$ = new_case_match(p, $2, cons(in_clause, $10));

3347+

}

33303348

| keyword_for for_var keyword_in

33313349

{COND_PUSH(1);}

33323350

expr_value do

@@ -3808,6 +3826,16 @@ in_clauses : opt_else

38083826

node *in_clause = new_in(p, $2, NULL, $4, FALSE);

38093827

$$ = cons(in_clause, $5);

38103828

}

3829+

| keyword_in p_expr modifier_if expr_value then compstmt in_clauses

3830+

{

3831+

node *in_clause = new_in(p, $2, $4, $6, FALSE);

3832+

$$ = cons(in_clause, $7);

3833+

}

3834+

| keyword_in p_expr modifier_unless expr_value then compstmt in_clauses

3835+

{

3836+

node *in_clause = new_in(p, $2, $4, $6, TRUE);

3837+

$$ = cons(in_clause, $7);

3838+

}

38113839

;

3812384038133841

/* Pattern expressions for case/in */

Read the original on github.com ↗