Lines Matching defs:tab
243 toml_table_t** tab;
262 toml_table_t** tab;
547 * Look up key in tab. Return 0 if not found, or
550 static int check_key(toml_table_t* tab, const char* key,
564 for (i = 0; i < tab->nkval; i++) {
565 if (0 == strcmp(key, tab->kval[i]->key)) {
566 *ret_val = tab->kval[i];
570 for (i = 0; i < tab->narr; i++) {
571 if (0 == strcmp(key, tab->arr[i]->key)) {
572 *ret_arr = tab->arr[i];
576 for (i = 0; i < tab->ntab; i++) {
577 if (0 == strcmp(key, tab->tab[i]->key)) {
578 *ret_tab = tab->tab[i];
587 static toml_keyval_t* create_keyval_in_table(context_t* ctx, toml_table_t* tab, token_t keytok)
596 if (check_key(tab, newkey, 0, 0, 0)) {
603 int n = tab->nkval;
605 if (0 == (base = (toml_keyval_t**) realloc(tab->kval, (n+1) * sizeof(*base)))) {
610 tab->kval = base;
617 dest = tab->kval[tab->nkval++];
627 static toml_table_t* create_keytable_in_table(context_t* ctx, toml_table_t* tab, token_t keytok)
636 if (check_key(tab, newkey, 0, 0, &dest)) {
650 int n = tab->ntab;
652 if (0 == (base = (toml_table_t**) realloc(tab->tab, (n+1) * sizeof(*base)))) {
657 tab->tab = base;
664 dest = tab->tab[tab->ntab++];
675 toml_table_t* tab,
686 if (check_key(tab, newkey, 0, &dest, 0)) {
697 int n = tab->narr;
699 if (0 == (base = (toml_array_t**) realloc(tab->arr, (n+1) * sizeof(*base)))) {
704 tab->arr = base;
711 dest = tab->arr[tab->narr++];
746 if (0 == (base = (toml_table_t**) realloc(parent->u.tab, (n+1) * sizeof(*base)))) {
750 parent->u.tab = base;
757 return parent->u.tab[parent->nelem++];
766 static void parse_keyval(context_t* ctx, toml_table_t* tab);
772 static void parse_table(context_t* ctx, toml_table_t* tab)
789 parse_keyval(ctx, tab);
935 static void parse_keyval(context_t* ctx, toml_table_t* tab)
955 toml_keyval_t* keyval = create_keyval_in_table(ctx, tab, key);
971 toml_array_t* arr = create_keyarray_in_table(ctx, tab, key, 0);
978 toml_table_t* nxttab = create_keytable_in_table(ctx, tab, key);
1076 nexttab = nextarr->u.tab[nextarr->nelem-1];
1086 toml_table_t** base = (toml_table_t**) realloc(curtab->tab, (n+1) * sizeof(*base));
1091 curtab->tab = base;
1103 nexttab = curtab->tab[curtab->ntab++];
1111 /* switch to next tab */
1169 toml_table_t** base = realloc(arr->u.tab, (n+1) * sizeof(*base));
1174 arr->u.tab = base;
1186 dest = arr->u.tab[arr->nelem++];
1365 for (int i = 0; i < p->nelem; i++) xfree_tab(p->u.tab[i]);
1366 xfree(p->u.tab);
1388 for (i = 0; i < p->ntab; i++) xfree_tab(p->tab[i]);
1389 xfree(p->tab);
1395 void toml_free(toml_table_t* tab)
1397 xfree_tab(tab);
1563 const char* toml_key_in(toml_table_t* tab, int keyidx)
1565 if (keyidx < tab->nkval) return tab->kval[keyidx]->key;
1567 keyidx -= tab->nkval;
1568 if (keyidx < tab->narr) return tab->arr[keyidx]->key;
1570 keyidx -= tab->narr;
1571 if (keyidx < tab->ntab) return tab->tab[keyidx]->key;
1577 const char* toml_raw_in(toml_table_t* tab, const char* key)
1580 for (i = 0; i < tab->nkval; i++) {
1581 if (0 == strcmp(key, tab->kval[i]->key))
1582 return tab->kval[i]->val;
1587 toml_array_t* toml_array_in(toml_table_t* tab, const char* key)
1590 for (i = 0; i < tab->narr; i++) {
1591 if (0 == strcmp(key, tab->arr[i]->key))
1592 return tab->arr[i];
1598 toml_table_t* toml_table_in(toml_table_t* tab, const char* key)
1601 for (i = 0; i < tab->ntab; i++) {
1602 if (0 == strcmp(key, tab->tab[i]->key))
1603 return tab->tab[i];
1644 int toml_table_nkval(toml_table_t* tab)
1646 return tab->nkval;
1649 int toml_table_narr(toml_table_t* tab)
1651 return tab->narr;
1654 int toml_table_ntab(toml_table_t* tab)
1656 return tab->ntab;
1659 const char* toml_table_key(toml_table_t* tab)
1661 return tab ? tab->key : (const char*) NULL;
1679 return arr->u.tab[idx];