Home | History | Annotate | Download | only in qemu
      1 #!/bin/sh
      2 
      3 hxtoh()
      4 {
      5     flag=1
      6     while read -r str; do
      7         case $str in
      8             HXCOMM*)
      9             ;;
     10             STEXI*|ETEXI*|SQMP*|EQMP*) flag=$(($flag^1))
     11             ;;
     12             *)
     13             test $flag -eq 1 && printf "%s\n" "$str"
     14             ;;
     15         esac
     16     done
     17 }
     18 
     19 hxtotexi()
     20 {
     21     flag=0
     22     line=1
     23     while read -r str; do
     24         case "$str" in
     25             HXCOMM*)
     26             ;;
     27             STEXI*)
     28             if test $flag -eq 1 ; then
     29                 echo "line $line: syntax error: expected ETEXI, found $str" >&2
     30                 exit 1
     31             fi
     32             flag=1
     33             ;;
     34             ETEXI*)
     35             if test $flag -ne 1 ; then
     36                 echo "line $line: syntax error: expected STEXI, found $str" >&2
     37                 exit 1
     38             fi
     39             flag=0
     40             ;;
     41             SQMP*|EQMP*)
     42             if test $flag -eq 1 ; then
     43                 echo "line $line: syntax error: expected ETEXI, found $str" >&2
     44                 exit 1
     45             fi
     46             ;;
     47             DEFHEADING*)
     48             echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
     49             ;;
     50             *)
     51             test $flag -eq 1 && echo "$str"
     52             ;;
     53         esac
     54         line=$((line+1))
     55     done
     56 }
     57 
     58 hxtoqmp()
     59 {
     60     IFS=
     61     flag=0
     62     line=1
     63     while read -r str; do
     64         case "$str" in
     65             HXCOMM*)
     66             ;;
     67             SQMP*)
     68             if test $flag -eq 1 ; then
     69                 echo "line $line: syntax error: expected EQMP, found $str" >&2
     70                 exit 1
     71             fi
     72             flag=1
     73             ;;
     74             EQMP*)
     75             if test $flag -ne 1 ; then
     76                 echo "line $line: syntax error: expected SQMP, found $str" >&2
     77                 exit 1
     78             fi
     79             flag=0
     80             ;;
     81             STEXI*|ETEXI*)
     82             if test $flag -eq 1 ; then
     83                 echo "line $line: syntax error: expected EQMP, found $str" >&2
     84                 exit 1
     85             fi
     86             ;;
     87             *)
     88             test $flag -eq 1 && echo "$str"
     89             ;;
     90         esac
     91         line=$((line+1))
     92     done
     93 }
     94 
     95 case "$1" in
     96 "-h") hxtoh ;;
     97 "-t") hxtotexi ;;
     98 "-q") hxtoqmp ;;
     99 *) exit 1 ;;
    100 esac
    101 
    102 exit 0
    103