1 (* Parsing /etc/ethers *)
6 let sep_tab = Util.del_ws_tab
8 let eol = del /[ \t]*\n/ "\n"
9 let indent = del /[ \t]*/ ""
11 let comment = Util.comment
12 let empty = [ del /[ \t]*#?[ \t]*\n/ "\n" ]
14 let word = /[^# \n\t]+/
16 let hex = /[0-9a-fA-F][0-9a-fA-F]?/ in
17 hex . ":" . hex . ":" . hex . ":" . hex . ":" . hex . ":" . hex
19 let record = [ seq "ether" . indent .
20 [ label "mac" . store address ] . sep_tab .
21 [ label "ip" . store word ] . eol ]
23 let lns = ( empty | comment | record ) *
25 let xfm = transform lns (incl "/etc/ethers")