new_table is now in /util/data, not /etc.
This commit is contained in:
75
util/data/new_table
Executable file
75
util/data/new_table
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
|
||||
em_table=$1
|
||||
h=${2-.}
|
||||
d=${3-.}
|
||||
|
||||
set `grep fpseu $em_table`
|
||||
p=$2
|
||||
set `grep fmnem $em_table`
|
||||
m=$2
|
||||
|
||||
ed - $em_table <<'A' > X
|
||||
1,/^$/g/ /s// /gp
|
||||
A
|
||||
|
||||
ed - $em_table <<'A' | awk '{$2=$2+'$p'; print}' > Y
|
||||
1,/^$/d
|
||||
1,/^$/g/ /s// /gp
|
||||
A
|
||||
|
||||
ed - $em_table <<'A' | awk '{print $0,'$m'+i++}' > Z
|
||||
1,/^$/d
|
||||
1,/^$/d
|
||||
1,/^$/g/ /s// /gp
|
||||
A
|
||||
|
||||
i=`wc -l <Y`
|
||||
echo 'lpseu' `expr $i + $p - 1` >>X
|
||||
i=`wc -l <Z`
|
||||
echo 'lmnem' `expr $i + $m - 1` >>X
|
||||
|
||||
ed - X <<'A' > $h/em_spec.h
|
||||
g/^/s//#define sp_/p
|
||||
A
|
||||
|
||||
ed - Y <<'A' > $h/em_pseu.h
|
||||
g/ \(.*\) .*/s// \1/
|
||||
g/\(.*\) \(.*\)/s//#define ps_\1 \2/p
|
||||
A
|
||||
|
||||
ed - Z <<'A' > $h/em_mnem.h
|
||||
g/ .* /s// /
|
||||
g/\(.*\) \(.*\)/s//#define op_\1 \2/p
|
||||
A
|
||||
|
||||
(
|
||||
echo 'char em_pseu[][4] = {'
|
||||
ed - Y <<'A'
|
||||
g/\(...\).*/s// "\1",/p
|
||||
A
|
||||
echo '};'
|
||||
) > $d/em_pseu.c
|
||||
|
||||
(
|
||||
echo 'char em_mnem[][4] = {'
|
||||
ed - Z <<'A'
|
||||
g/\(...\).*/s// "\1",/p
|
||||
A
|
||||
echo '};'
|
||||
) > $d/em_mnem.c
|
||||
|
||||
(
|
||||
echo '#include <em_flag.h>
|
||||
char em_flag[] = {'
|
||||
ed - Z <<'A' | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
g/^... /s///
|
||||
g/ .*/s///
|
||||
g/\(.\)\(.\)/s//PAR_\1 | FLO_\2/
|
||||
g/-/s//NO/g
|
||||
g/.*/s// &,/p
|
||||
A
|
||||
echo '};'
|
||||
) > $d/em_flag.c
|
||||
|
||||
rm X Y Z
|
||||
Reference in New Issue
Block a user