5.16.5.22. Regular expression matching

Start data section to src/flx_parse.mly[28 /33 ] Next Prev First Last
  1980: regmatch_expr:
  1981:   | REGMATCH expr WITH regmatch_alternatives ENDMATCH
  1982:   {
  1983:     let sr = rstoken $1 $5 in
  1984:     `AST_string_regmatch (sr,($2,$4))
  1985: 
  1986:     (*
  1987:     let pa = `PAT_as (sr,`PAT_any sr,"_a") in
  1988:     let pb = `PAT_as (sr,`PAT_any sr,"_b") in
  1989:     let p = `PAT_tuple (sr,[pa;pb]) in
  1990:     let a = `AST_name (sr,"_a",[]) in
  1991:     let b = `AST_name (sr,"_b",[]) in
  1992:     let lexmod = `AST_name(sr,"Lexer",[]) in
  1993:     let sb = `AST_lookup(sr,(lexmod,"bounds",[])) in
  1994:     let se = `AST_apply(sr,(sb,$2)) in
  1995:     `AST_letin (sr,(p,se,
  1996:       `AST_regmatch (sr,(a,b,$4)))
  1997:     )
  1998:     *)
  1999:   }
  2000: 
  2001:   | REGLEX expr TO expr WITH regmatch_alternatives ENDMATCH
  2002:   {
  2003:     `AST_reglex (rstoken $1 $7,($2,$4,$6))
  2004:   }
  2005: 
  2006: regmatch_alternatives:
  2007:   | regmatch_alternatives regmatch_alternative { $2 :: $1 }
  2008:   | regmatch_alternative { [$1] }
  2009: 
  2010: regmatch_alternative:
  2011:   | VBAR re1 EQRIGHTARROW expr { $2,$4 }
  2012: 
  2013: 
End data section to src/flx_parse.mly[28]