/* Automatically generated file, do not edit. See containters.def */

/* Copyright (c) 2000-200 The Regents of the University of California. */
/* See the copyright notice in nodetypes.def for distribution restrictions */
#ifndef CONTAINERS_H
#define CONTAINERS_H
#include "set.h"
#include "AST.h"
extern struct Set_info qual_edge_set_info;
typedef struct { set s; } qual_edge_set;
typedef struct { set_scanner ss; } qual_edge_set_scanner;
static inline qual_edge_set to_qual_edge_set(set s) { qual_edge_set new_s = { s }; return new_s; }
static inline qual_edge_set empty_qual_edge_set(void) { return to_qual_edge_set(empty_set); }
static inline qual_edge_set qual_edge_set_copy(region r, qual_edge_set s) { return to_qual_edge_set(set_copy(r, s.s)); }
static inline bool qual_edge_set_empty(qual_edge_set s) { return set_empty(s.s); }
static inline bool qual_edge_set_member(qual_edge_set s, qual_edge elt) { return set_member(&qual_edge_set_info, s.s, (void *) elt); }
static inline int qual_edge_set_size(qual_edge_set s) { return set_size(s.s); }
static inline void qual_edge_set_insert(region r, qual_edge_set *s, qual_edge elt) { set_insert(r, &qual_edge_set_info, &s->s, (void *) elt); }
static inline void qual_edge_set_remove(qual_edge_set *s, qual_edge elt) { set_remove(&qual_edge_set_info, &s->s, (void *) elt); }
static inline bool qual_edge_set_subset(qual_edge_set s1, qual_edge_set s2) { return set_subset(&qual_edge_set_info, s1.s, s2.s); }
static inline qual_edge_set qual_edge_set_union(qual_edge_set s1, qual_edge_set s2) { return to_qual_edge_set(set_union(&qual_edge_set_info, s1.s, s2.s)); }
static inline bool qual_edge_set_single(qual_edge_set s) { return set_single(s.s); }
static inline void qual_edge_set_sort(qual_edge_set s) { set_sort(&qual_edge_set_info, s.s); }
static inline void qual_edge_set_scan(qual_edge_set s, qual_edge_set_scanner *ss) { set_scan(s.s, &ss->ss); }
static inline qual_edge qual_edge_set_next(qual_edge_set_scanner *ss) { return (qual_edge) set_next(&ss->ss); }
#define scan_qual_edge_set(var, scanner, set) for (qual_edge_set_scan(set, &scanner), var = qual_edge_set_next(&scanner); var; var = qual_edge_set_next(&scanner))

extern struct Set_info po_set_info;
typedef struct { set s; } po_set;
typedef struct { set_scanner ss; } po_set_scanner;
static inline po_set to_po_set(set s) { po_set new_s = { s }; return new_s; }
static inline po_set empty_po_set(void) { return to_po_set(empty_set); }
static inline po_set po_set_copy(region r, po_set s) { return to_po_set(set_copy(r, s.s)); }
static inline bool po_set_empty(po_set s) { return set_empty(s.s); }
static inline bool po_set_member(po_set s, po_info elt) { return set_member(&po_set_info, s.s, (void *) elt); }
static inline int po_set_size(po_set s) { return set_size(s.s); }
static inline void po_set_insert(region r, po_set *s, po_info elt) { set_insert(r, &po_set_info, &s->s, (void *) elt); }
static inline void po_set_remove(po_set *s, po_info elt) { set_remove(&po_set_info, &s->s, (void *) elt); }
static inline bool po_set_subset(po_set s1, po_set s2) { return set_subset(&po_set_info, s1.s, s2.s); }
static inline po_set po_set_union(po_set s1, po_set s2) { return to_po_set(set_union(&po_set_info, s1.s, s2.s)); }
static inline bool po_set_single(po_set s) { return set_single(s.s); }
static inline void po_set_sort(po_set s) { set_sort(&po_set_info, s.s); }
static inline void po_set_scan(po_set s, po_set_scanner *ss) { set_scan(s.s, &ss->ss); }
static inline po_info po_set_next(po_set_scanner *ss) { return (po_info) set_next(&ss->ss); }
#define scan_po_set(var, scanner, set) for (po_set_scan(set, &scanner), var = po_set_next(&scanner); var; var = po_set_next(&scanner))

extern struct Set_info qual_set_byname_info;
typedef struct { set s; } qual_set_byname;
typedef struct { set_scanner ss; } qual_set_byname_scanner;
static inline qual_set_byname to_qual_set_byname(set s) { qual_set_byname new_s = { s }; return new_s; }
static inline qual_set_byname empty_qual_set_byname(void) { return to_qual_set_byname(empty_set); }
static inline qual_set_byname qual_set_byname_copy(region r, qual_set_byname s) { return to_qual_set_byname(set_copy(r, s.s)); }
static inline bool qual_set_byname_empty(qual_set_byname s) { return set_empty(s.s); }
static inline bool qual_set_byname_member(qual_set_byname s, qual elt) { return set_member(&qual_set_byname_info, s.s, (void *) elt); }
static inline int qual_set_byname_size(qual_set_byname s) { return set_size(s.s); }
static inline void qual_set_byname_insert(region r, qual_set_byname *s, qual elt) { set_insert(r, &qual_set_byname_info, &s->s, (void *) elt); }
static inline void qual_set_byname_remove(qual_set_byname *s, qual elt) { set_remove(&qual_set_byname_info, &s->s, (void *) elt); }
static inline bool qual_set_byname_subset(qual_set_byname s1, qual_set_byname s2) { return set_subset(&qual_set_byname_info, s1.s, s2.s); }
static inline qual_set_byname qual_set_byname_union(qual_set_byname s1, qual_set_byname s2) { return to_qual_set_byname(set_union(&qual_set_byname_info, s1.s, s2.s)); }
static inline bool qual_set_byname_single(qual_set_byname s) { return set_single(s.s); }
static inline void qual_set_byname_sort(qual_set_byname s) { set_sort(&qual_set_byname_info, s.s); }
static inline void qual_set_byname_scan(qual_set_byname s, qual_set_byname_scanner *ss) { set_scan(s.s, &ss->ss); }
static inline qual qual_set_byname_next(qual_set_byname_scanner *ss) { return (qual) set_next(&ss->ss); }
#define scan_qual_set_byname(var, scanner, set) for (qual_set_byname_scan(set, &scanner), var = qual_set_byname_next(&scanner); var; var = qual_set_byname_next(&scanner))

extern struct Set_info qual_set_info;
typedef struct { set s; } qual_set;
typedef struct { set_scanner ss; } qual_set_scanner;
static inline qual_set to_qual_set(set s) { qual_set new_s = { s }; return new_s; }
static inline qual_set empty_qual_set(void) { return to_qual_set(empty_set); }
static inline qual_set qual_set_copy(region r, qual_set s) { return to_qual_set(set_copy(r, s.s)); }
static inline bool qual_set_empty(qual_set s) { return set_empty(s.s); }
static inline bool qual_set_member(qual_set s, qual elt) { return set_member(&qual_set_info, s.s, (void *) elt); }
static inline int qual_set_size(qual_set s) { return set_size(s.s); }
static inline void qual_set_insert(region r, qual_set *s, qual elt) { set_insert(r, &qual_set_info, &s->s, (void *) elt); }
static inline void qual_set_remove(qual_set *s, qual elt) { set_remove(&qual_set_info, &s->s, (void *) elt); }
static inline bool qual_set_subset(qual_set s1, qual_set s2) { return set_subset(&qual_set_info, s1.s, s2.s); }
static inline qual_set qual_set_union(qual_set s1, qual_set s2) { return to_qual_set(set_union(&qual_set_info, s1.s, s2.s)); }
static inline bool qual_set_single(qual_set s) { return set_single(s.s); }
static inline void qual_set_sort(qual_set s) { set_sort(&qual_set_info, s.s); }
static inline void qual_set_scan(qual_set s, qual_set_scanner *ss) { set_scan(s.s, &ss->ss); }
static inline qual qual_set_next(qual_set_scanner *ss) { return (qual) set_next(&ss->ss); }
#define scan_qual_set(var, scanner, set) for (qual_set_scan(set, &scanner), var = qual_set_next(&scanner); var; var = qual_set_next(&scanner))

extern struct Set_info ty_set_info;
typedef struct { set s; } ty_set;
typedef struct { set_scanner ss; } ty_set_scanner;
static inline ty_set to_ty_set(set s) { ty_set new_s = { s }; return new_s; }
static inline ty_set empty_ty_set(void) { return to_ty_set(empty_set); }
static inline ty_set ty_set_copy(region r, ty_set s) { return to_ty_set(set_copy(r, s.s)); }
static inline bool ty_set_empty(ty_set s) { return set_empty(s.s); }
static inline bool ty_set_member(ty_set s, ty elt) { return set_member(&ty_set_info, s.s, (void *) elt); }
static inline int ty_set_size(ty_set s) { return set_size(s.s); }
static inline void ty_set_insert(region r, ty_set *s, ty elt) { set_insert(r, &ty_set_info, &s->s, (void *) elt); }
static inline void ty_set_remove(ty_set *s, ty elt) { set_remove(&ty_set_info, &s->s, (void *) elt); }
static inline bool ty_set_subset(ty_set s1, ty_set s2) { return set_subset(&ty_set_info, s1.s, s2.s); }
static inline ty_set ty_set_union(ty_set s1, ty_set s2) { return to_ty_set(set_union(&ty_set_info, s1.s, s2.s)); }
static inline bool ty_set_single(ty_set s) { return set_single(s.s); }
static inline void ty_set_sort(ty_set s) { set_sort(&ty_set_info, s.s); }
static inline void ty_set_scan(ty_set s, ty_set_scanner *ss) { set_scan(s.s, &ss->ss); }
static inline ty ty_set_next(ty_set_scanner *ss) { return (ty) set_next(&ss->ss); }
#define scan_ty_set(var, scanner, set) for (ty_set_scan(set, &scanner), var = ty_set_next(&scanner); var; var = ty_set_next(&scanner))

#endif
