#Bash completion file for OpenFst 1.2 #Copyright Paul Dixon 2011 (paul@edobashira.com) #Tested on Ubuntu 10.04 using bash 4.5 #To use simply source the completion file. #source openfstbc #These bash completions will add tab completion to the OpenFst flags. This file adds three types of completions based on the flag’s value type. #Flags which accept path, numeric values will complete with a trailing = character and then default to the standard path completion. #Binary flags will complete without a trailing = character. #Flags which can accepted an enumerable string value will complete will a trailing = and then suggest suitable values. For example the –arc_type= completions will suggest log and standard values parameters. #1 2 3 4 5 #name cur prev pprev options _completeenumerable () { if [[ $2 == = || $3 == = ]] ; then if [[ $3 == *$1 ]] ; then COMPREPLY=($(compgen -W "$5" -- )) return 0 fi if [[ $4 == *$1 ]] ; then COMPREPLY=($(compgen -W "$5" -- $2)) return 0 fi fi } _fstprint() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--acceptor --isymbols= --osymbols= --ssymbols= --numeric --save_isymbols= --save_osymbols= --show_weight_one --allow_negative_labels " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstprint fstprint _fstclosure() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--closure_plus " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstclosure fstclosure _fstconvert() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--fst_type= " _completeenumerable fst_type ${cur} ${prev} ${pprev} "arc_lookahead compact16_acceptor compact16_string compact16_unweighted compact16_unweighted_acceptor compact16_weighted_string compact64_acceptor compact64_string compact64_unweighted compact64_unweighted_acceptor compact64_weighted_string compact8_acceptor compact8_string compact8_unweighted compact8_unweighted_acceptor compact8_weighted_string compact_acceptor compact_string compact_unweighted compact_unweighted_acceptor compact_weighted_string const const16 const64 const8 edit ilabel_lookahead olabel_lookahead vector" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstconvert fstconvert _fstshortestdistance() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--reverse --delta= --nstate= --queue_type= " _completeenumerable queue_type ${cur} ${prev} ${pprev} "auto fifo lifo shortest state top" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstshortestdistance fstshortestdistance _fstproject() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--project_output " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstproject fstproject _fstdraw() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--acceptor --isymbols= --osymbols= --ssymbols= --numeric --save_isymbols= --save_osymbols= --precision= --show_weight_one --title= --portrait --vertical --fontsize= --height= --width= --nodesep= --ranksep= --allow_negative_labels " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstdraw fstdraw _fstshortestpath() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --nshortest= --unique --weight= --nstate= --queue_type= " _completeenumerable queue_type ${cur} ${prev} ${pprev} "auto fifo lifo shortest state top" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstshortestpath fstshortestpath _fstcompile() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--acceptor --arc_type= --fst_type= --isymbols= --osymbols= --ssymbols= --keep_isymbols --keep_osymbols --keep_state_numbering --allow_negative_labels " _completeenumerable arc_type ${cur} ${prev} ${pprev} "log standard" _completeenumerable fst_type ${cur} ${prev} ${pprev} "arc_lookahead compact16_acceptor compact16_string compact16_unweighted compact16_unweighted_acceptor compact16_weighted_string compact64_acceptor compact64_string compact64_unweighted compact64_unweighted_acceptor compact64_weighted_string compact8_acceptor compact8_string compact8_unweighted compact8_unweighted_acceptor compact8_weighted_string compact_acceptor compact_string compact_unweighted compact_unweighted_acceptor compact_weighted_string const const16 const64 const8 edit ilabel_lookahead olabel_lookahead vector" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstcompile fstcompile _fstreweight() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--to_final " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstreweight fstreweight _fstinfo() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--arc_filter= --info_type= --pipe --test_properties " _completeenumerable arc_filter ${cur} ${prev} ${pprev} "any epsilon iepsilon oepsilon" _completeenumerable info_type ${cur} ${prev} ${pprev} "auto long short" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstinfo fstinfo _fstequal() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstequal fstequal _fstencode() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--encode_labels --encode_weights --encode_reuse --decode " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstencode fstencode _fstequivalent() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --random --max_length= --npath= --seed= --select= " _completeenumerable select ${cur} ${prev} ${pprev} "fast_log_prob log_prob uniform" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstequivalent fstequivalent _fstrandgen() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--max_length= --npath= --seed= --select= " _completeenumerable select ${cur} ${prev} ${pprev} "fast_log_prob log_prob uniform" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstrandgen fstrandgen _fstepsnormalize() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--eps_norm_output " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstepsnormalize fstepsnormalize _fstsymbols() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--isymbols= --osymbols= --clear_isymbols --clear_osymbols --relabel_ipairs= --relabel_opairs= --allow_negative_labels " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstsymbols fstsymbols _fstmap() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --map_type= --weight= " _completeenumerable map_type ${cur} ${prev} ${pprev} "identity invert plus quantize rmweight superfinal times" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstmap fstmap _fstpush() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --push_weights --push_labels --remove_total_weight --remove_common_affix --to_final " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstpush fstpush _fstrelabel() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--isymbols= --osymbols= --relabel_isymbols= --relabel_osymbols= --relabel_ipairs= --relabel_opairs= --allow_negative_labels " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstrelabel fstrelabel _fstprune() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --nstate= --weight= " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstprune fstprune _fstdifference() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--compose_filter= --connect " _completeenumerable compose_filter ${cur} ${prev} ${pprev} "auto alt_sequence match sequence" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstdifference fstdifference _fstdeterminize() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= --nstate= --weight= --subsequential_label= " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstdeterminize fstdeterminize _fstreplace() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--epsilon_on_replace " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstreplace fstreplace _fstrmepsilon() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--connect --delta= --nstate= --reverse --weight= --queue_type= " _completeenumerable queue_type ${cur} ${prev} ${pprev} "auto fifo lifo shortest state top" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstrmepsilon fstrmepsilon _fstminimize() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--delta= " if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstminimize fstminimize _fstcompose() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--compose_filter= --connect " _completeenumerable compose_filter ${cur} ${prev} ${pprev} "auto alt_sequence match sequence" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstcompose fstcompose _fstarcsort() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--sort_type= " _completeenumerable sort_type ${cur} ${prev} ${pprev} "ilabel olabel" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstarcsort fstarcsort _fstintersect() { local cur prev opts filters len pprev COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" if (( $COMP_CWORD > 2)) ; then pprev="${COMP_WORDS[COMP_CWORD-2]}" else pprev="NULL" fi opts="--compose_filter= --connect " _completeenumerable compose_filter ${cur} ${prev} ${pprev} "auto alt_sequence match sequence" if [[ ${cur} == -* ]] ; then COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 fi } complete -o default -o nospace -F _fstintersect fstintersect