#!/usr/bin/env python # -*- coding: utf-8 -*- # This scripts reads static table entries [1] and generates # nghttp2_hd_static_entry table. This table is used in # lib/nghttp2_hd.c. # # [1] http://http2.github.io/http2-spec/compression.html from __future__ import unicode_literals import re, sys entries = [] for line in sys.stdin: m = re.match(r'(\d+)\s+(\S+)\s+(\S.*)?', line) val = m.group(3).strip() if m.group(3) else '' entries.append((int(m.group(1)), m.group(2), val)) print 'static nghttp2_hd_entry static_table[] = {' idx = 0 for i, ent in enumerate(entries): if entries[idx][1] != ent[1]: idx = i print 'MAKE_STATIC_ENT("{}", "{}", {}),'\ .format(ent[1], ent[2], entries[idx][0] - 1) print '};'