1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5//
6// This include file determines how BitVec is implemented.
7//
8#ifndef _BITVEC_INCLUDED_
9#define _BITVEC_INCLUDED_ 1
10
11// This class simplifies creation and usage of "ShortLong" bitsets.
12//
13// Create new bitsets like so:
14//
15// BitVecTraits traits(size, pCompiler);
16// BitVec bitvec = BitVecOps::MakeEmpty(&traits);
17//
18// and call functions like so:
19//
20// BitVecOps::AddElemD(&traits, bitvec, 10);
21// BitVecOps::IsMember(&traits, bitvec, 10));
22//
23
24#include "bitset.h"
25#include "compilerbitsettraits.h"
26#include "bitsetasshortlong.h"
27
28typedef BitSetOps</*BitSetType*/ BitSetShortLongRep,
29 /*Brand*/ BSShortLong,
30 /*Env*/ BitVecTraits*,
31 /*BitSetTraits*/ BitVecTraits>
32 BitVecOps;
33
34typedef BitSetShortLongRep BitVec;
35
36// These types should be used as the types for BitVec arguments and return values, respectively.
37typedef BitVecOps::ValArgType BitVec_ValArg_T;
38typedef BitVecOps::RetValType BitVec_ValRet_T;
39
40#endif // _BITVEC_INCLUDED_
41