#compdef rumur

# Zsh completion script for Rumur

_arguments \
  '--bound[limit of the state space exploration depth]:steps' \
  '--colour[enable or disable ANSI colour codes]: :(auto off on)' \
  '--counterexample-trace[how to print counterexample traces]: :(diff full off)' \
  '--deadlock-detection[deadlock semantics to use]: :(off stuck stuttering)' \
  {--debug,-d}'[enabled debugging mode]' \
  '--help[display help information]' \
  '--max-errors[number of errors to report before exiting]:count' \
  '--monopolise[use all machine resources]' \
  {--output,-o}'[path to write C verifier to]:filename:_files' \
  '--output-format[how verifier should print output]: :(machine-readable human-readable)' \
  '--pack-state[compress verifier auxiliary state]: :(on off)' \
  '--pointer-bits[number of relevant bits in a pointer]bits' \
  {--quiet,-q}'[suppress output while generating verifier]' \
  '--reorder-fields[optimise state variable and record field order]: :(on off)' \
  '--sandbox[verifier privilege restriction]: :(on off)' \
  '--scalarset-schedules[track scalarset permutations]: :(on off)' \
  {--set-capacity,-s}'[initial memory (in bytes) to allocate for the seen set]:SIZE' \
  {--set-expand-threshold,-e}'[limit at which to expand the seen set]:occupancy percentage' \
  '--smt-arg[argument to pass to SMT solver]:ARG' \
  '--smt-bitvectors[disable or enable using bitvectors instead of unbounded integers in SMT translation]: :(off on)' \
  '--smt-budget[time allotment for SMT solver]:MILLISECONDS' \
  '--smt-path[path to SMT solver]:path:_cmdstring' \
  '--smt-prelude[text to pass to SMT solver preceding problems]:TEXT' \
  '--smt-simplification[disable or enable using SMT solver for simplification]: :(off on)' \
  '--symmetry-reduction[symmetry reduction optimisation]: :(off heuristic exhaustive)' \
  {--threads,-t}'[number of threads to use in the verifier]:count' \
  '--trace[tracing messages to print in the verifier]: :(handle_reads handle_writes queue set symmetry_reduction all)' \
  '--value-type[C type to use for scalar values in the verifier]: :(auto int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t)' \
  {--verbose,-v}'[output more detail while generating verifier]' \
  '--version[output version information]' \
  '*::filename:_files -g "*.m"'
