--- /dev/null
+#!/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
},
command = {
- "cd %ROOTDIR%etc && ./new_table %out[1]:dirname% %out[1]:dirname%"
+ "%in[1]% %in[2]% %out[1]:dirname% %out[1]:dirname%"
},
install = {
pm.install("%U%/em_mnem.h", "%HEADERDIR%em_mnem.h")
},
- file "%ROOTDIR%etc/new_table",
+ file (d.."new_table"),
+ file ("%ROOTDIR%h/em_table"),
}
local cfile_with_headers = cfile {
-- Revision history
-- $Log$
--- Revision 1.1 2006-07-20 23:24:28 dtrg
+-- Revision 1.2 2007-02-25 12:49:04 dtrg
+-- new_table is now in /util/data, not /etc.
+--
+-- Revision 1.1 2006/07/20 23:24:28 dtrg
-- First version in CVS.
--