Missed off <ctype.h>\!
[u/mdw/catacomb] / p-gentab.sh
CommitLineData
34e4f738 1#! /bin/sh
2
3set -e
4
5cat <<EOF
6/* -*-c-*-
7 *
8 * Table of standard prime subgroups [generated]
9 */
10
11#include "ptab.h"
12
13#define N(x) (sizeof(x)/sizeof(*x))
14#define MP(x) { x, x + N(x), N(x), 0, MP_CONST, 0 }
15
16/*----- Prime data --------------------------------------------------------*/
17
18EOF
19
20names=""
21while read t n; do
22
23 case $t in
24 group) ;;
25 alias) names="$names $n=$f" continue;;
26 \#* | "") continue;;
27 *) echo >&2 "$0: unknown keyword $t"; exit 1;;
28 esac
29
30 names="$names $n=$n"
31 cat <<EOF
32/* --- Group $n --- */
33
34EOF
35
36 n=`echo $n | sed 's/[^a-zA-Z0-9_][^a-zA-Z0-9_]*/_/g'`
37 read t p
38 if [ $t != p ]; then echo >&2 "$0: wanted p; found $t"; exit 1; fi
39 read t q
40 if [ $t != q ]; then echo >&2 "$0: wanted q; found $t"; exit 1; fi
41 read t g
42 if [ $t != g ]; then echo >&2 "$0: wanted g; found $t"; exit 1; fi
43
44 cat <<EOF
45static mpw p_${n}_p[] = {
46EOF
47 ./mpdump $p
48 cat <<EOF
49};
50
51static mpw p_${n}_q[] = {
52EOF
53 ./mpdump $q
54 cat <<EOF
55};
56
57static mpw p_${n}_g[] = {
58EOF
59 ./mpdump $g
60 cat <<EOF
61};
62
63static pdata p_$n = {
64 MP(p_${n}_p),
65 MP(p_${n}_q),
66 MP(p_${n}_g)
67};
68
69EOF
70
71done
72
73cat <<EOF
74/*----- Main table --------------------------------------------------------*/
75
76const pentry ptab[] = {
77EOF
78for i in $names; do
79 a=`echo $i | sed 's/=.*$//'`
80 n=`echo $i | sed 's/^.*=//; s/[^a-zA-Z0-9_][^a-zA-Z0-9_]*/_/g'`
81 cat <<EOF
82 { "$a", &p_$n },
83EOF
84done
85cat <<EOF
86 { 0, 0 }
87};
88
89/*----- That's all, folks -------------------------------------------------*/
90EOF