1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/bin/sh
- 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 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
|