(* Parsing /etc/portage/package.use *) module Packageuse = autoload xfm let sep_spc = Util.del_ws_spc let sep_tab = Util.del_ws_tab let eol = del /[ \t]*\n/ "\n" let indent = del /[ \t]*/ "" let comment = Util.comment let empty = [ del /[ \t]*#?[ \t]*\n/ "\n" ] let word = /[^# \n\t]+/ let record = [ seq "packageuse" . indent . [ label "package" . store word ] . sep_tab . [ label "use" . store word ] . [ label "use" . sep_spc . store word ]* . (comment|eol) ] let lns = ( empty | comment | record ) * let filter = (incl "/etc/portage/package.use") . (incl "/etc/portage/package.use/*") let xfm = transform lns filter