xref: /qemu/scripts/hxtool (revision 9277d81f)
1#!/bin/sh
2
3hxtoh()
4{
5    flag=1
6    while read -r str; do
7        case $str in
8            HXCOMM*)
9            ;;
10            STEXI*|ETEXI*) flag=$(($flag^1))
11            ;;
12            *)
13            test $flag -eq 1 && printf "%s\n" "$str"
14            ;;
15        esac
16    done
17}
18
19print_texi_heading()
20{
21    if test "$*" != ""; then
22        title="$*"
23        printf "@subsection %s\n" "${title%:}"
24    fi
25}
26
27hxtotexi()
28{
29    flag=0
30    line=1
31    while read -r str; do
32        case "$str" in
33            HXCOMM*)
34            ;;
35            STEXI*)
36            if test $flag -eq 1 ; then
37                printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
38                exit 1
39            fi
40            flag=1
41            ;;
42            ETEXI*)
43            if test $flag -ne 1 ; then
44                printf "line %d: syntax error: expected STEXI, found '%s'\n" "$line" "$str" >&2
45                exit 1
46            fi
47            flag=0
48            ;;
49            DEFHEADING*)
50            print_texi_heading "$(expr "$str" : "DEFHEADING(\(.*\))")"
51            ;;
52            ARCHHEADING*)
53            print_texi_heading "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
54            ;;
55            *)
56            test $flag -eq 1 && printf '%s\n' "$str"
57            ;;
58        esac
59        line=$((line+1))
60    done
61}
62
63case "$1" in
64"-h") hxtoh ;;
65"-t") hxtotexi ;;
66*) exit 1 ;;
67esac
68
69exit 0
70