s. Parameters: body:lens - the lens to be enclosed *) let do_quote (body:lens) = square quote body quote (* View: do_quote Enclose a lens in options s. Parameters: body:lens - the lens to be enclosed *) let do_quote_opt (body:lens) = square quote_opt body quote_opt (* View: do_quote Enclose a lens in options s, default to no quotes. Parameters: body:lens - the lens to be enclosed *) let do_quote_opt_nil (body:lens) = square quote_opt_nil body quote_opt_nil (* Group: QUOTED VALUES *) (* View: double A double-quoted value *) let double = let body = store /[^\n]*/ in do_dquote body (* Variable: double_opt_re The regexp to store when value is optionally double-quoted *) let double_opt_re = /[^\n\t "]([^\n"]*[^\n\t "])?/ (* View: double_opt An optionally double-quoted value Double quotes are not allowed in value Value cannot begin or end with spaces *) let double_opt = let body = store double_opt_re in do_dquote_opt body (* View: single A single-quoted value *) let single = let body = store /[^\n]*/ in do_squote body (* Variable: single_opt_re The regexp to store when value is optionally single-quoted *) let single_opt_re = /[^\n\t ']([^\n']*[^\n\t '])?/ (* View: single_opt An optionally single-quoted value Single quotes are not allowed in value Value cannot begin or end with spaces *) let single_opt = let body = store single_opt_re in do_squote_opt body (* View: any A quoted value *) let any = let body = store /[^\n]*/ in do_quote body (* Variable: any_opt_re The regexp to store when value is optionally single- or double-quoted *) let any_opt_re = /[^\n\t "']([^\n"']*[^\n\t "'])?/ (* View: any_opt An optionally quoted value Double or single quotes are not allowed in value Value cannot begin or end with spaces *) let any_opt = let body = store any_opt_re in do_quote_opt body (* View: quote_spaces Make quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let quote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_quote_opt (store /[^"' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_quote (store /[^"'\n]*[ \t]+[^"'\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: dquote_spaces Make double quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let dquote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_dquote_opt (store /[^" \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_dquote (store /[^"\n]*[ \t]+[^"\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: squote_spaces Make single quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let squote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_squote_opt (store /[^' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_squote (store /[^'\n]*[ \t]+[^'\n]*/) in [ lns . bare ] | [ lns . quoted ]
s. Parameters: body:lens - the lens to be enclosed *) let do_quote_opt (body:lens) = square quote_opt body quote_opt (* View: do_quote Enclose a lens in options s, default to no quotes. Parameters: body:lens - the lens to be enclosed *) let do_quote_opt_nil (body:lens) = square quote_opt_nil body quote_opt_nil (* Group: QUOTED VALUES *) (* View: double A double-quoted value *) let double = let body = store /[^\n]*/ in do_dquote body (* Variable: double_opt_re The regexp to store when value is optionally double-quoted *) let double_opt_re = /[^\n\t "]([^\n"]*[^\n\t "])?/ (* View: double_opt An optionally double-quoted value Double quotes are not allowed in value Value cannot begin or end with spaces *) let double_opt = let body = store double_opt_re in do_dquote_opt body (* View: single A single-quoted value *) let single = let body = store /[^\n]*/ in do_squote body (* Variable: single_opt_re The regexp to store when value is optionally single-quoted *) let single_opt_re = /[^\n\t ']([^\n']*[^\n\t '])?/ (* View: single_opt An optionally single-quoted value Single quotes are not allowed in value Value cannot begin or end with spaces *) let single_opt = let body = store single_opt_re in do_squote_opt body (* View: any A quoted value *) let any = let body = store /[^\n]*/ in do_quote body (* Variable: any_opt_re The regexp to store when value is optionally single- or double-quoted *) let any_opt_re = /[^\n\t "']([^\n"']*[^\n\t "'])?/ (* View: any_opt An optionally quoted value Double or single quotes are not allowed in value Value cannot begin or end with spaces *) let any_opt = let body = store any_opt_re in do_quote_opt body (* View: quote_spaces Make quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let quote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_quote_opt (store /[^"' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_quote (store /[^"'\n]*[ \t]+[^"'\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: dquote_spaces Make double quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let dquote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_dquote_opt (store /[^" \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_dquote (store /[^"\n]*[ \t]+[^"\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: squote_spaces Make single quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let squote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_squote_opt (store /[^' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_squote (store /[^'\n]*[ \t]+[^'\n]*/) in [ lns . bare ] | [ lns . quoted ]
s, default to no quotes. Parameters: body:lens - the lens to be enclosed *) let do_quote_opt_nil (body:lens) = square quote_opt_nil body quote_opt_nil (* Group: QUOTED VALUES *) (* View: double A double-quoted value *) let double = let body = store /[^\n]*/ in do_dquote body (* Variable: double_opt_re The regexp to store when value is optionally double-quoted *) let double_opt_re = /[^\n\t "]([^\n"]*[^\n\t "])?/ (* View: double_opt An optionally double-quoted value Double quotes are not allowed in value Value cannot begin or end with spaces *) let double_opt = let body = store double_opt_re in do_dquote_opt body (* View: single A single-quoted value *) let single = let body = store /[^\n]*/ in do_squote body (* Variable: single_opt_re The regexp to store when value is optionally single-quoted *) let single_opt_re = /[^\n\t ']([^\n']*[^\n\t '])?/ (* View: single_opt An optionally single-quoted value Single quotes are not allowed in value Value cannot begin or end with spaces *) let single_opt = let body = store single_opt_re in do_squote_opt body (* View: any A quoted value *) let any = let body = store /[^\n]*/ in do_quote body (* Variable: any_opt_re The regexp to store when value is optionally single- or double-quoted *) let any_opt_re = /[^\n\t "']([^\n"']*[^\n\t "'])?/ (* View: any_opt An optionally quoted value Double or single quotes are not allowed in value Value cannot begin or end with spaces *) let any_opt = let body = store any_opt_re in do_quote_opt body (* View: quote_spaces Make quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let quote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_quote_opt (store /[^"' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_quote (store /[^"'\n]*[ \t]+[^"'\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: dquote_spaces Make double quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let dquote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_dquote_opt (store /[^" \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_dquote (store /[^"\n]*[ \t]+[^"\n]*/) in [ lns . bare ] | [ lns . quoted ] (* View: squote_spaces Make single quotes mandatory if value contains spaces, and optional if value doesn't contain spaces. Parameters: lns:lens - the lens to be enclosed *) let squote_spaces (lns:lens) = (* bare has no spaces, and is optionally quoted *) let bare = Quote.do_squote_opt (store /[^' \t\n]+/) (* quoted has at least one space, and must be quoted *) in let quoted = Quote.do_squote (store /[^'\n]*[ \t]+[^'\n]*/) in [ lns . bare ] | [ lns . quoted ]