71 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			Text
		
	
	
		
			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 '{print $1,$2+'$p'}' > 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//#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
 |