OSDN Git Service

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-docs-20200203' into staging
[qmiga/qemu.git] / scripts / hxtool
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*|SRST*|ERST*) flag=$(($flag^1))
11             ;;
12             *)
13             test $flag -eq 1 && printf "%s\n" "$str"
14             ;;
15         esac
16     done
17 }
18
19 print_texi_heading()
20 {
21     if test "$*" != ""; then
22         title="$*"
23         printf "@subsection %s\n" "${title%:}"
24     fi
25 }
26
27 hxtotexi()
28 {
29     flag=0
30     rstflag=0
31     line=1
32     while read -r str; do
33         case "$str" in
34             HXCOMM*)
35             ;;
36             STEXI*)
37             if test $rstflag -eq 1 ; then
38                 printf "line %d: syntax error: expected ERST, found '%s'\n" "$line" "$str" >&2
39                 exit 1
40             fi
41             if test $flag -eq 1 ; then
42                 printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
43                 exit 1
44             fi
45             flag=1
46             ;;
47             ETEXI*)
48             if test $rstflag -eq 1 ; then
49                 printf "line %d: syntax error: expected ERST, found '%s'\n" "$line" "$str" >&2
50                 exit 1
51             fi
52             if test $flag -ne 1 ; then
53                 printf "line %d: syntax error: expected STEXI, found '%s'\n" "$line" "$str" >&2
54                 exit 1
55             fi
56             flag=0
57             ;;
58             SRST*)
59             if test $rstflag -eq 1 ; then
60                 printf "line %d: syntax error: expected ERST, found '%s'\n" "$line" "$str" >&2
61                 exit 1
62             fi
63             if test $flag -eq 1 ; then
64                 printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
65                 exit 1
66             fi
67             rstflag=1
68             ;;
69             ERST*)
70             if test $flag -eq 1 ; then
71                 printf "line %d: syntax error: expected ETEXI, found '%s'\n" "$line" "$str" >&2
72                 exit 1
73             fi
74             if test $rstflag -ne 1 ; then
75                 printf "line %d: syntax error: expected SRST, found '%s'\n" "$line" "$str" >&2
76                 exit 1
77             fi
78             rstflag=0
79             ;;
80             DEFHEADING*)
81             print_texi_heading "$(expr "$str" : "DEFHEADING(\(.*\))")"
82             ;;
83             ARCHHEADING*)
84             print_texi_heading "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
85             ;;
86             *)
87             test $flag -eq 1 && printf '%s\n' "$str"
88             ;;
89         esac
90         line=$((line+1))
91     done
92 }
93
94 case "$1" in
95 "-h") hxtoh ;;
96 "-t") hxtotexi ;;
97 *) exit 1 ;;
98 esac
99
100 exit 0