let rec pcml = function
  | [] -> ()
  | ("--print-xp"|"pxp")::l -> toggle _remind; pcml l
  | ("--print-newline"|"pn")::l -> toggle _remind_newline; pcml l
  | ("--print-unit"|"pu")::l -> toggle _print_unit; pcml l
  | ("--print-symbol"|"ps")::l -> toggle _insert_result; pcml l
  | ("--eval-now"|"en")::l -> eval_list l
  | ("--delimiters"|"del")::dl::dr::l -> _delil := dl; _delir := dr; pcml l
  | ("--unit-string"|"us")::s::l -> Eval._str_unit := s; pcml l
  | ("--eval-file"|"ef")::path::l -> eval_file path; pcml l
  | ("--display-welcome"|"dw")::l -> toggle _disp_wel; pcml l
  | ("--show-error"|"se")::l -> toggle _se; pcml l
  | ("--print_errors"|"pe")::l -> toggle _pe; pcml l
  | ("+command-line"|"c")::l -> _runmode := CMD_LINE (l)
  | ("+stdin"|"s")::l -> _runmode := STDIN ; pcml l
  | ("+replace"|"r")::l -> _runmode := REPLACE ; pcml l
  | ("--help")::l -> disp_help (); exit 0
  | x::l -> bad_args x ; failwith "Please correct the command-line and try again... (see --help)"