#!/usr/bin/env python
from __future__ import unicode_literals
from io import StringIO

from gentokenlookup import gentokenlookup

# copied from http-parser/http_parser.h, and stripped trailing spaces
# and backslashes.
SRC = '''
  XX(0,  DELETE,      DELETE)
  XX(1,  GET,         GET)
  XX(2,  HEAD,        HEAD)
  XX(3,  POST,        POST)
  XX(4,  PUT,         PUT)
  /* pathological */
  XX(5,  CONNECT,     CONNECT)
  XX(6,  OPTIONS,     OPTIONS)
  XX(7,  TRACE,       TRACE)
  /* webdav */
  XX(8,  COPY,        COPY)
  XX(9,  LOCK,        LOCK)
  XX(10, MKCOL,       MKCOL)
  XX(11, MOVE,        MOVE)
  XX(12, PROPFIND,    PROPFIND)
  XX(13, PROPPATCH,   PROPPATCH)
  XX(14, SEARCH,      SEARCH)
  XX(15, UNLOCK,      UNLOCK)
  /* subversion */
  XX(16, REPORT,      REPORT)
  XX(17, MKACTIVITY,  MKACTIVITY)
  XX(18, CHECKOUT,    CHECKOUT)
  XX(19, MERGE,       MERGE)
  /* upnp */
  XX(20, MSEARCH,     M-SEARCH)
  XX(21, NOTIFY,      NOTIFY)
  XX(22, SUBSCRIBE,   SUBSCRIBE)
  XX(23, UNSUBSCRIBE, UNSUBSCRIBE)
  /* RFC-5789 */
  XX(24, PATCH,       PATCH)
  XX(25, PURGE,       PURGE)
  /* CalDAV */
  XX(26, MKCALENDAR,  MKCALENDAR)
'''

if __name__ == '__main__':
    methods = []
    for line in StringIO(SRC):
        line = line.strip()
        if not line.startswith('XX'):
            continue
        _, m, _ = line.split(',', 2)
        methods.append(m.strip())
    gentokenlookup(methods, 'HTTP_')
