Lines Matching refs:alist
1 /* $NetBSD: alist.c,v 1.9 2025/01/26 16:25:44 christos Exp $ */
41 #include <isccc/alist.h>
48 #define ALIST_TAG "*alist*"
56 isccc_sexpr_t *alist, *tag;
62 alist = isccc_sexpr_cons(tag, NULL);
63 if (alist == NULL) {
68 return alist;
72 isccc_alist_alistp(isccc_sexpr_t *alist) {
75 if (alist == NULL || alist->type != ISCCC_SEXPRTYPE_DOTTEDPAIR) {
78 car = CAR(alist);
89 isccc_alist_emptyp(isccc_sexpr_t *alist) {
90 REQUIRE(isccc_alist_alistp(alist));
92 if (CDR(alist) == NULL) {
99 isccc_alist_first(isccc_sexpr_t *alist) {
100 REQUIRE(isccc_alist_alistp(alist));
102 return CDR(alist);
106 isccc_alist_assq(isccc_sexpr_t *alist, const char *key) {
109 REQUIRE(isccc_alist_alistp(alist));
112 * Skip alist type tag.
114 alist = CDR(alist);
116 while (alist != NULL) {
117 INSIST(alist->type == ISCCC_SEXPRTYPE_DOTTEDPAIR);
118 car = CAR(alist);
126 alist = CDR(alist);
133 isccc_alist_delete(isccc_sexpr_t *alist, const char *key) {
136 REQUIRE(isccc_alist_alistp(alist));
138 prev = alist;
139 rest = CDR(alist);
159 isccc_alist_define(isccc_sexpr_t *alist, const char *key,
163 kv = isccc_alist_assq(alist, key);
177 elt = isccc_sexpr_addtolist(&alist, kv);
194 isccc_alist_definestring(isccc_sexpr_t *alist, const char *key,
202 kv = isccc_alist_define(alist, key, v);
211 isccc_alist_definebinary(isccc_sexpr_t *alist, const char *key,
219 kv = isccc_alist_define(alist, key, v);
228 isccc_alist_lookup(isccc_sexpr_t *alist, const char *key) {
231 kv = isccc_alist_assq(alist, key);
239 isccc_alist_lookupstring(isccc_sexpr_t *alist, const char *key, char **strp) {
242 kv = isccc_alist_assq(alist, key);
259 isccc_alist_lookupbinary(isccc_sexpr_t *alist, const char *key,
263 kv = isccc_alist_assq(alist, key);