diff options
Diffstat (limited to 'hxtool')
-rw-r--r-- | hxtool | 44 |
1 files changed, 43 insertions, 1 deletions
@@ -7,7 +7,7 @@ hxtoh() case $str in HXCOMM*) ;; - STEXI*|ETEXI*) flag=$(($flag^1)) + STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1)) ;; *) test $flag -eq 1 && printf "%s\n" "$str" @@ -38,6 +38,12 @@ hxtotexi() fi flag=0 ;; + SQMP*|EQMP*) + if test $flag -eq 1 ; then + echo "line $line: syntax error: expected ETEXI, found $str" >&2 + exit 1 + fi + ;; DEFHEADING*) echo "$(expr "$str" : "DEFHEADING(\(.*\))")" ;; @@ -49,9 +55,45 @@ hxtotexi() done } +hxtoqmp() +{ + IFS= + flag=0 + while read -r str; do + case "$str" in + HXCOMM*) + ;; + SQMP*) + if test $flag -eq 1 ; then + echo "line $line: syntax error: expected EQMP, found $str" >&2 + exit 1 + fi + flag=1 + ;; + EQMP*) + if test $flag -ne 1 ; then + echo "line $line: syntax error: expected SQMP, found $str" >&2 + exit 1 + fi + flag=0 + ;; + STEXI*|ETEXI*) + if test $flag -eq 1 ; then + echo "line $line: syntax error: expected EQMP, found $str" >&2 + exit 1 + fi + ;; + *) + test $flag -eq 1 && echo "$str" + ;; + esac + done +} + case "$1" in "-h") hxtoh ;; "-t") hxtotexi ;; +"-q") hxtoqmp ;; *) exit 1 ;; esac |