src/lib/url.c
author Tero Marttila <terom@fixme.fi>
Tue, 07 Oct 2008 18:38:03 +0300
changeset 13 385b9a10d096
child 14 115067dfba55
permissions -rw-r--r--
inital playing around with a lexer/url parser

#include "url.h"
#include "lexer.h"

enum url_tokens {
    URL_INVALID,
    
    URL_SCHEME,
    URL_SCHEME_SEP,
    URL_SCHEME_END_COL,
    URL_SCHEME_END_SLASH1,
    URL_SCHEME_END_SLASH2,
    
    URL_USERNAME,
    URL_PASSWORD_SEP,
    URL_PASSWORD,
    URL_USERNAME_END,

    URL_HOSTNAME,

    URL_SERVICE_SEP,
    URL_SERVICE,

    URL_PATH_START,
    URL_PATH,

    URL_OPT_START,
    URL_OPT_KEY,
    URL_OPT_EQ,
    URL_OPT_VAL,
    URL_OPT_SEP,

    URL_MAX,
};

static struct lex *url_lex = {
    .state_count = URL_MAX,
    .stae_list = {
        LEX_STATE(URL_SCHEME)
            LEX_ALNUM       (           URL_SCHEME          ),
            LEX_CHAR        (   '+',    URL_SCHEME_SEP      ),
        LEX_STATE_END,



    },
}