1 (* Parsing /etc/postfix/access *)
3 module Postfix_Access =
6 let sep_tab = Util.del_ws_tab
7 let sep_spc = Util.del_ws_spc
9 let eol = del /[ \t]*\n/ "\n"
10 let indent = del /[ \t]*/ ""
12 let comment = Util.comment
13 let empty = Util.empty
15 let char = /[^# \n\t]/
17 let cont = /\n[ \t]+/ in
19 char | (char . (any | cont)* .char)
22 let record = [ seq "spec" .
23 [ label "pattern" . store word ] . sep_tab .
24 [ label "action" . store word ] .
25 [ label "parameters" . sep_spc . store text ]? . eol ]
27 let lns = ( empty | comment | record )*
29 let xfm = transform lns (incl "/etc/postfix/access" . incl "/usr/local/etc/postfix/access")