- let mod_name = Quote.do_quote (store (Rx.word . /[\/-]/ . Rx.word))
- in let version = [ label "@version" . Quote.do_quote (store /[^:\n]+/) ]
- in let opt = [ Util.del_str ":" . key Rx.word . del /[ \t]*=>[ \t]*/ " => "
- . Quote.do_quote (store /[^,\n]*/) ]
- in let opts = Build.opt_list opt comma
+ let mod_name = Quote.do_quote (store ((Rx.word . /[\/-]/)? . Rx.word))
+ in let version = [ label "@version" . Quote.do_quote (store /[^#:\n]+/) . Util.comment_eol? ]
+ in let sto_opt_val = store /[^#"', \t\n][^#"',\n]*[^#"', \t\n]|[^#"', \t\n]/
+ in let opt = [
+ Util.del_str ":" . key Rx.word
+ . (del /[ \t]*=>[ \t]*/ " => " . Quote.do_quote_opt sto_opt_val)?
+ ]
+ in let opt_eol = del /([ \t\n]*\n)?/ ""
+ in let opt_space_or_eol = del /[ \t\n]*/ " "
+ in let comma_opt_eol_comment = comma_nospace . (opt_eol . Util.comment_eol)*
+ . opt_space_or_eol
+ in let opts = Build.opt_list opt comma_opt_eol_comment