c2dc6da49f
description. This change is upwards compatible with the previous version, t.i., it still works the same with the previous version of "em_table".
73 lines
1,013 B
Plaintext
Executable file
73 lines
1,013 B
Plaintext
Executable file
h=${1-.}
|
|
d=${2-.}
|
|
|
|
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 a-z A-Z
|
|
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
|