gen: move the management of ds[] to gen.c
tok: allow large ds sections and string tokens
cpp: use a simple hash table instead of tab struct