(* Parsing /boot/grub/grubenv *) module GrubEnv = autoload xfm let eol = Util.del_str "\n" let comment = Util.comment let eq = Util.del_str "=" let value = /[^\\\n]*(\\\\(\\\\|\n)[^\\\n]*)*/ let word = /[A-Za-z_][A-Za-z0-9_]*/ let record = [ seq "target" . [ label "name" . store word ] . eq . [ label "value" . store value ] . eol ] let lns = ( comment | record ) * let xfm = transform lns (incl "/boot/grub/grubenv" . incl "/boot/grub2/grubenv")