#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