Blob Blame History Raw
(* Check that we properly discard skeletons when we shift subtrees   *)
(* across lenses. The test shifts a subtree parsed with SND to one   *)
(* that is put with FST. Since the two have different skeleton types *)
(* we need to ignore the skeleton that comes with it.                *)
module Pass_array =

  let array = 
    let array_value = store /[a-z0-9]+/ in
    let fst = seq "values" . array_value . del /[ \t]+/ "\t" in
    let snd = seq "values" . array_value in
    del "(" "(" . counter "values" .
    [ fst ] * . [ snd ] . del ")" ")"

  let lns = [ key /[a-z]+/ . del "=" "=" . array ]

  test lns put "var=(v1 v2)" after
    set "var/3" "v3" = "var=(v1 v2\tv3)"