Pristine Ack-5.5
[Ack-5.5.git] / etc / new_table
1 h=${1-.}
2 d=${2-.}
3
4 set `grep fpseu em_table`
5 p=$2
6 set `grep fmnem em_table`
7 m=$2
8
9 ed - em_table <<'A' > X
10 1,/^$/g/        /s// /gp
11 A
12
13 ed - em_table <<'A' | awk '{$2=$2+'$p'; print}' > Y
14 1,/^$/d
15 1,/^$/g/        /s// /gp
16 A
17
18 ed - em_table <<'A' | awk '{print $0,'$m'+i++}' > Z
19 1,/^$/d
20 1,/^$/d
21 1,/^$/g/        /s// /gp
22 A
23
24 i=`wc -l <Y`
25 echo 'lpseu' `expr $i + $p - 1` >>X
26 i=`wc -l <Z`
27 echo 'lmnem' `expr $i + $m - 1` >>X
28
29 ed - X <<'A' > $h/em_spec.h
30 g/^/s//#define sp_/p
31 A
32
33 ed - Y <<'A' > $h/em_pseu.h
34 g/ \(.*\) .*/s// \1/
35 g/\(.*\) \(.*\)/s//#define ps_\1 \2/p
36 A
37
38 ed - Z <<'A' > $h/em_mnem.h
39 g/ .* /s// /
40 g/\(.*\) \(.*\)/s//#define op_\1 \2/p
41 A
42
43 (
44 echo 'char em_pseu[][4] = {'
45 ed - Y <<'A'
46 g/\(...\).*/s// "\1",/p
47 A
48 echo '};'
49 ) > $d/em_pseu.c
50
51 (
52 echo 'char em_mnem[][4] = {'
53 ed - Z <<'A'
54 g/\(...\).*/s// "\1",/p
55 A
56 echo '};'
57 ) > $d/em_mnem.c
58
59 (
60 echo '#include  <em_flag.h>
61 char em_flag[] = {'
62 ed - Z <<'A' | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
63 g/^... /s///
64 g/ .*/s///
65 g/\(.\)\(.\)/s//PAR_\1 | FLO_\2/
66 g/-/s//NO/g
67 g/.*/s//        &,/p
68 A
69 echo '};'
70 ) > $d/em_flag.c
71
72 rm X Y Z