Blame tests/modules/pass_cont_line.aug
|
Packit |
06dd63 |
module Pass_cont_line =
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
(* Parse a list of words where the list can stretch over multiple lines.
|
|
Packit |
06dd63 |
Mostly there to demonstrate how to deal with continuation lines. *)
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let list_elt = [ label "element" . store /[a-z]+/ ]
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let ws_cont = /([ \t]+|[ \t]*\\\\\n[ \t]*)/
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let sep = del ws_cont " "
|
|
Packit |
06dd63 |
let eol = del /[ \t]*\n/ "\n"
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let list = list_elt . ( sep . list_elt )* . eol
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
let exp_tree = { "element" = "a" } { "element" = "b" }
|
|
Packit |
06dd63 |
|
|
Packit |
06dd63 |
test list get "a b\n" = exp_tree
|
|
Packit |
06dd63 |
test list get "a \\\n b\n" = exp_tree
|
|
Packit |
06dd63 |
test list get "a\\\nb\n" = exp_tree
|