/*
 * Copyright (C) 2023 Alexander Borisov
 *
 * Author: Alexander Borisov <borisov@lexbor.com>
 */

/*
 * Caution!
 * This file generated by the script "utils/lexbor/css/names.py"!
 * Do not change this file!
 */


#ifndef LXB_CSS_UNIT_RES_H
#define LXB_CSS_UNIT_RES_H

#include "lexbor/core/shs.h"
#include "lexbor/css/unit/const.h"


static const lxb_css_data_t lxb_css_unit_data[LXB_CSS_UNIT__LAST_ENTRY] = 
{
    {(lxb_char_t *) "#undef", 6, LXB_CSS_UNIT__UNDEF},
    {(lxb_char_t *) "Q", 1, LXB_CSS_UNIT_Q},
    {(lxb_char_t *) "cm", 2, LXB_CSS_UNIT_CM},
    {(lxb_char_t *) "in", 2, LXB_CSS_UNIT_IN},
    {(lxb_char_t *) "mm", 2, LXB_CSS_UNIT_MM},
    {(lxb_char_t *) "pc", 2, LXB_CSS_UNIT_PC},
    {(lxb_char_t *) "pt", 2, LXB_CSS_UNIT_PT},
    {(lxb_char_t *) "px", 2, LXB_CSS_UNIT_PX},
    {(lxb_char_t *) "cap", 3, LXB_CSS_UNIT_CAP},
    {(lxb_char_t *) "ch", 2, LXB_CSS_UNIT_CH},
    {(lxb_char_t *) "em", 2, LXB_CSS_UNIT_EM},
    {(lxb_char_t *) "ex", 2, LXB_CSS_UNIT_EX},
    {(lxb_char_t *) "ic", 2, LXB_CSS_UNIT_IC},
    {(lxb_char_t *) "lh", 2, LXB_CSS_UNIT_LH},
    {(lxb_char_t *) "rem", 3, LXB_CSS_UNIT_REM},
    {(lxb_char_t *) "rlh", 3, LXB_CSS_UNIT_RLH},
    {(lxb_char_t *) "vb", 2, LXB_CSS_UNIT_VB},
    {(lxb_char_t *) "vh", 2, LXB_CSS_UNIT_VH},
    {(lxb_char_t *) "vi", 2, LXB_CSS_UNIT_VI},
    {(lxb_char_t *) "vmax", 4, LXB_CSS_UNIT_VMAX},
    {(lxb_char_t *) "vmin", 4, LXB_CSS_UNIT_VMIN},
    {(lxb_char_t *) "vw", 2, LXB_CSS_UNIT_VW},
    {(lxb_char_t *) "deg", 3, LXB_CSS_UNIT_DEG},
    {(lxb_char_t *) "grad", 4, LXB_CSS_UNIT_GRAD},
    {(lxb_char_t *) "rad", 3, LXB_CSS_UNIT_RAD},
    {(lxb_char_t *) "turn", 4, LXB_CSS_UNIT_TURN},
    {(lxb_char_t *) "Hz", 2, LXB_CSS_UNIT_HZ},
    {(lxb_char_t *) "kHz", 3, LXB_CSS_UNIT_KHZ},
    {(lxb_char_t *) "dpcm", 4, LXB_CSS_UNIT_DPCM},
    {(lxb_char_t *) "dpi", 3, LXB_CSS_UNIT_DPI},
    {(lxb_char_t *) "dppx", 4, LXB_CSS_UNIT_DPPX},
    {(lxb_char_t *) "x", 1, LXB_CSS_UNIT_X},
    {(lxb_char_t *) "ms", 2, LXB_CSS_UNIT_MS},
    {(lxb_char_t *) "s", 1, LXB_CSS_UNIT_S}
};

static const lexbor_shs_entry_t lxb_css_unit_absolute_relative_shs[84] = 
{
    {NULL, NULL, 83, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"rem", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_REM], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vmax", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VMAX], 4, 0}, 
    {"pc", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PC], 2, 0}, 
    {"lh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_LH], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {"rlh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_RLH], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"cm", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CM], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"q", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_Q], 1, 0}, 
    {"ic", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_IC], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vw", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VW], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"pt", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PT], 2, 0}, 
    {"vb", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VB], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"ex", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_EX], 2, 0}, 
    {"in", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_IN], 2, 0}, 
    {"cap", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CAP], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"em", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_EM], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vmin", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VMIN], 4, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vi", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VI], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"mm", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_MM], 2, 0}, 
    {"ch", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CH], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"px", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PX], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VH], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_absolute_shs[30] = 
{
    {NULL, NULL, 29, 0}, 
    {NULL, NULL, 0, 0}, 
    {"in", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_IN], 2, 0}, 
    {"pt", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PT], 2, 0}, 
    {"q", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_Q], 1, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"mm", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_MM], 2, 0}, 
    {"px", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PX], 2, 0}, 
    {"cm", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CM], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"pc", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_PC], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_relative_shs[64] = 
{
    {NULL, NULL, 63, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"ic", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_IC], 2, 0}, 
    {"cap", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CAP], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"rem", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_REM], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"em", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_EM], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"ch", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_CH], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"ex", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_EX], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vb", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VB], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VH], 2, 0}, 
    {"vi", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VI], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"rlh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_RLH], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vmin", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VMIN], 4, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"lh", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_LH], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vw", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VW], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"vmax", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_VMAX], 4, 0}, 
    {NULL, NULL, 0, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_angel_shs[7] = 
{
    {NULL, NULL, 6, 0}, 
    {"turn", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_TURN], 4, 0}, 
    {"deg", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_DEG], 3, 0}, 
    {"grad", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_GRAD], 4, 0}, 
    {"rad", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_RAD], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_frequency_shs[6] = 
{
    {NULL, NULL, 5, 0}, 
    {NULL, NULL, 0, 0}, 
    {"khz", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_KHZ], 3, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}, 
    {"hz", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_HZ], 2, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_resolution_shs[7] = 
{
    {NULL, NULL, 6, 0}, 
    {NULL, NULL, 0, 0}, 
    {"x", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_X], 1, 0}, 
    {"dpcm", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_DPCM], 4, 0}, 
    {"dpi", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_DPI], 3, 0}, 
    {"dppx", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_DPPX], 4, 0}, 
    {NULL, NULL, 0, 0}
};

static const lexbor_shs_entry_t lxb_css_unit_duration_shs[6] = 
{
    {NULL, NULL, 5, 0}, 
    {NULL, NULL, 0, 0}, 
    {"s", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_S], 1, 0}, 
    {"ms", (void *) &lxb_css_unit_data[LXB_CSS_UNIT_MS], 2, 0}, 
    {NULL, NULL, 0, 0}, 
    {NULL, NULL, 0, 0}
};




#endif /* LXB_CSS_UNIT_RES_H */
