2264: regmatch_expr: 2265: | REGMATCH expr WITH regmatch_alternatives ENDMATCH 2266: { 2267: let sr = rstoken $1 $5 in 2268: `AST_string_regmatch (sr,($2,$4)) 2269: 2270: (* 2271: let pa = `PAT_as (sr,`PAT_any sr,"_a") in 2272: let pb = `PAT_as (sr,`PAT_any sr,"_b") in 2273: let p = `PAT_tuple (sr,[pa;pb]) in 2274: let a = `AST_name (sr,"_a",[]) in 2275: let b = `AST_name (sr,"_b",[]) in 2276: let lexmod = `AST_name(sr,"Lexer",[]) in 2277: let sb = `AST_lookup(sr,(lexmod,"bounds",[])) in 2278: let se = `AST_apply(sr,(sb,$2)) in 2279: `AST_letin (sr,(p,se, 2280: `AST_regmatch (sr,(a,b,$4))) 2281: ) 2282: *) 2283: } 2284: 2285: | REGLEX expr TO expr WITH regmatch_alternatives ENDMATCH 2286: { 2287: `AST_reglex (rstoken $1 $7,($2,$4,$6)) 2288: } 2289: 2290: regmatch_alternatives: 2291: | regmatch_alternatives regmatch_alternative { $2 :: $1 } 2292: | regmatch_alternative { [$1] } 2293: 2294: regmatch_alternative: 2295: | VBAR re1 EQRIGHTARROW expr { $2,$4 } 2296: 2297: