Statistics
| Branch: | Revision:

root / scripts / hxtool @ 34bb443e

History | View | Annotate | Download (2.3 kB)

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
            ARCHHEADING*)
51
            echo "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
52
            ;;
53
            *)
54
            test $flag -eq 1 && echo "$str"
55
            ;;
56
        esac
57
        line=$((line+1))
58
    done
59
}
60

    
61
hxtoqmp()
62
{
63
    IFS=
64
    flag=0
65
    line=1
66
    while read -r str; do
67
        case "$str" in
68
            HXCOMM*)
69
            ;;
70
            SQMP*)
71
            if test $flag -eq 1 ; then
72
                echo "line $line: syntax error: expected EQMP, found $str" >&2
73
                exit 1
74
            fi
75
            flag=1
76
            ;;
77
            EQMP*)
78
            if test $flag -ne 1 ; then
79
                echo "line $line: syntax error: expected SQMP, found $str" >&2
80
                exit 1
81
            fi
82
            flag=0
83
            ;;
84
            STEXI*|ETEXI*)
85
            if test $flag -eq 1 ; then
86
                echo "line $line: syntax error: expected EQMP, found $str" >&2
87
                exit 1
88
            fi
89
            ;;
90
            *)
91
            test $flag -eq 1 && echo "$str"
92
            ;;
93
        esac
94
        line=$((line+1))
95
    done
96
}
97

    
98
case "$1" in
99
"-h") hxtoh ;;
100
"-t") hxtotexi ;;
101
"-q") hxtoqmp ;;
102
*) exit 1 ;;
103
esac
104

    
105
exit 0