antlr3bitset.c man page

src/antlr3bitset.c — Contains the C implementation of ANTLR3 bitsets as adapted from Terence Parr's Java implementation.

Synopsis

#include <antlr3bitset.h>

Functions

static void antlr3BitsetAdd (pANTLR3_BITSET bitset, ANTLR3_INT32 bit)

static pANTLR3_BITSET antlr3BitsetClone (pANTLR3_BITSET inSet)

ANTLR3_API pANTLR3_BITSET antlr3BitsetCopy (pANTLR3_BITSET_LIST blist)

static ANTLR3_BOOLEAN antlr3BitsetEquals (pANTLR3_BITSET bitset1, pANTLR3_BITSET bitset2)

static void antlr3BitsetFree (pANTLR3_BITSET bitset)

static ANTLR3_BOOLEAN antlr3BitsetIsNil (pANTLR3_BITSET bitset)

ANTLR3_API pANTLR3_BITSET antlr3BitsetList (pANTLR3_HASH_TABLE list)

ANTLR3_API pANTLR3_BITSET antlr3BitsetLoad (pANTLR3_BITSET_LIST inBits)
Creates a new bitset with at least one 64 bit bset of bits, but as many 64 bit sets as are required.
static ANTLR3_BOOLEAN antlr3BitsetMember (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit)

ANTLR3_API pANTLR3_BITSET antlr3BitsetNew (ANTLR3_UINT32 numBits)

static ANTLR3_UINT32 antlr3BitsetNumBits (pANTLR3_BITSET bitset)

ANTLR3_API pANTLR3_BITSET antlr3BitsetOf (ANTLR3_INT32 bit,...)
Creates a new bitset with at least one element, but as many elements are required.
static pANTLR3_BITSET antlr3BitsetOR (pANTLR3_BITSET bitset1, pANTLR3_BITSET bitset2)

static void antlr3BitsetORInPlace (pANTLR3_BITSET bitset, pANTLR3_BITSET bitset2)

static void antlr3BitsetRemove (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit)

ANTLR3_API void antlr3BitsetSetAPI (pANTLR3_BITSET bitset)

static ANTLR3_UINT32 antlr3BitsetSize (pANTLR3_BITSET bitset)

static pANTLR3_INT32 antlr3BitsetToIntList (pANTLR3_BITSET bitset)
Produce an integer list of all the bits that are turned on in this bitset.
static ANTLR3_UINT64 bitMask (ANTLR3_UINT32 bitNumber)

static void grow (pANTLR3_BITSET bitset, ANTLR3_INT32 newSize)

static void growToInclude (pANTLR3_BITSET bitset, ANTLR3_INT32 bit)

static ANTLR3_UINT32 numWordsToHold (ANTLR3_UINT32 bit)

static ANTLR3_UINT32 wordNumber (ANTLR3_UINT32 bit)

Detailed Description

Contains the C implementation of ANTLR3 bitsets as adapted from Terence Parr's Java implementation.

Function Documentation

static void antlr3BitsetAdd (pANTLR3_BITSET bitset, ANTLR3_INT32 bit) [static]

References bitMask(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, growToInclude(), ANTLR3_BITSET_LIST_struct::length, and wordNumber().

Referenced by antlr3BitsetOf(), and antlr3BitsetSetAPI().

static pANTLR3_BITSET antlr3BitsetClone (pANTLR3_BITSET inSet) [static]

References ANTLR3_API, ANTLR3_BITSET_BITS, ANTLR3_MEMCPY, antlr3BitsetNew(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetOR(), and antlr3BitsetSetAPI().

ANTLR3_API pANTLR3_BITSET antlr3BitsetCopy (pANTLR3_BITSET_LIST blist)

References ANTLR3_FREE, ANTLR3_MALLOC, ANTLR3_MEMCPY, ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

static ANTLR3_BOOLEAN antlr3BitsetEquals (pANTLR3_BITSET bitset1, pANTLR3_BITSET bitset2) [static]

References ANTLR3_FALSE, ANTLR3_TRUE, ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetSetAPI().

static void antlr3BitsetFree (pANTLR3_BITSET bitset) [static]

References ANTLR3_API, ANTLR3_FREE, ANTLR3_BITSET_LIST_struct::bits, and ANTLR3_BITSET_struct::blist.

Referenced by antlr3BitsetSetAPI().

static ANTLR3_BOOLEAN antlr3BitsetIsNil (pANTLR3_BITSET bitset) [static]

References ANTLR3_FALSE, ANTLR3_TRUE, ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetSetAPI().

ANTLR3_API pANTLR3_BITSET antlr3BitsetList (pANTLR3_HASH_TABLE list)

References ANTLR3_BITSET_struct::add, ANTLR3_API, ANTLR3_SUCCESS, antlr3BitsetNew(), antlr3EnumNew(), ANTLR3_HASH_ENUM_struct::free, and ANTLR3_HASH_ENUM_struct::next.

Referenced by getTokensList().

ANTLR3_API pANTLR3_BITSET antlr3BitsetLoad (pANTLR3_BITSET_LIST inBits)

Creates a new bitset with at least one 64 bit bset of bits, but as many 64 bit sets as are required.

Parameters:

bset A variable number of bits to add to the set, ending in -1 (impossible bit).

Returns:

A new bit set with all of the specified bitmaps in it and the API initialized.

Call as:

·
pANTLR3_BITSET = antlrBitsetLoad(bset, bset11, ..., -1);
·
pANTLR3_BITSET = antlrBitsetOf(-1); Create empty bitset

Remarks:

Stdargs function - must supply -1 as last paremeter, which is NOT added to the set.

References ANTLR3_API, antlr3BitsetNew(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, ANTLR3_BITSET_struct::grow, and ANTLR3_BITSET_LIST_struct::length.

Referenced by combineFollows(), displayRecognitionError(), mismatchIsMissingToken(), and recoverFromMismatchedElement().

static ANTLR3_BOOLEAN antlr3BitsetMember (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit) [static]

References ANTLR3_FALSE, ANTLR3_TRUE, bitMask(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, ANTLR3_BITSET_LIST_struct::length, and wordNumber().

Referenced by antlr3BitsetSetAPI().

ANTLR3_API pANTLR3_BITSET antlr3BitsetNew (ANTLR3_UINT32 numBits)

References ANTLR3_API, ANTLR3_BITSET_BITS, ANTLR3_BITSET_LOG_BITS, ANTLR3_FREE, ANTLR3_MALLOC, antlr3BitsetSetAPI(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by addEdge(), antlr3BitsetClone(), antlr3BitsetList(), antlr3BitsetLoad(), antlr3BitsetOf(), combineFollows(), and sortToArray().

static ANTLR3_UINT32 antlr3BitsetNumBits (pANTLR3_BITSET bitset) [static]

References ANTLR3_BITSET_LOG_BITS, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetSetAPI().

ANTLR3_API pANTLR3_BITSET antlr3BitsetOf (ANTLR3_INT32 bit, ...)

Creates a new bitset with at least one element, but as many elements are required.

Parameters:

bit A variable number of bits to add to the set, ending in -1 (impossible bit).

Returns:

A new bit set with all of the specified elements added into it.

Call as:

·
pANTLR3_BITSET = antlrBitsetOf(n, n1, n2, -1);
·
pANTLR3_BITSET = antlrBitsetOf(-1); Create empty bitset

Remarks:

Stdargs function - must supply -1 as last paremeter, which is NOT added to the set.

References antlr3BitsetAdd(), and antlr3BitsetNew().

Referenced by getTokensType().

static pANTLR3_BITSET antlr3BitsetOR (pANTLR3_BITSET bitset1, pANTLR3_BITSET bitset2) [static]

References antlr3BitsetClone(), and antlr3BitsetORInPlace().

Referenced by antlr3BitsetSetAPI().

static void antlr3BitsetORInPlace (pANTLR3_BITSET bitset, pANTLR3_BITSET bitset2) [static]

References ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, growToInclude(), and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetOR(), and antlr3BitsetSetAPI().

static void antlr3BitsetRemove (pANTLR3_BITSET bitset, ANTLR3_UINT32 bit) [static]

References bitMask(), ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and wordNumber().

Referenced by antlr3BitsetSetAPI().

ANTLR3_API void antlr3BitsetSetAPI (pANTLR3_BITSET bitset)

References ANTLR3_BITSET_struct::add, ANTLR3_API, antlr3BitsetAdd(), antlr3BitsetClone(), antlr3BitsetEquals(), antlr3BitsetFree(), antlr3BitsetIsNil(), antlr3BitsetMember(), antlr3BitsetNumBits(), antlr3BitsetOR(), antlr3BitsetORInPlace(), antlr3BitsetRemove(), antlr3BitsetSize(), antlr3BitsetToIntList(), ANTLR3_BITSET_struct::bor, ANTLR3_BITSET_struct::borInPlace, ANTLR3_BITSET_struct::clone, ANTLR3_BITSET_struct::equals, ANTLR3_BITSET_struct::free, grow(), ANTLR3_BITSET_struct::grow, ANTLR3_BITSET_struct::isMember, ANTLR3_BITSET_struct::isNilNode, ANTLR3_BITSET_struct::numBits, ANTLR3_BITSET_struct::remove, ANTLR3_BITSET_struct::size, and ANTLR3_BITSET_struct::toIntList.

Referenced by antlr3BitsetNew().

static ANTLR3_UINT32 antlr3BitsetSize (pANTLR3_BITSET bitset) [static]

References ANTLR3_BITSET_BITS, ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetSetAPI().

static pANTLR3_INT32 antlr3BitsetToIntList (pANTLR3_BITSET bitset) [static]

Produce an integer list of all the bits that are turned on in this bitset. Used for error processing in the main as the bitset reresents a number of integer tokens which we use for follow sets and so on.

The first entry is the number of elements following in the list.

References ANTLR3_MALLOC, ANTLR3_TRUE, ANTLR3_BITSET_struct::isMember, ANTLR3_BITSET_struct::numBits, and ANTLR3_BITSET_struct::size.

Referenced by antlr3BitsetSetAPI().

static ANTLR3_UINT64 bitMask (ANTLR3_UINT32 bitNumber) [static]

References ANTLR3_BITSET_MOD_MASK.

Referenced by antlr3BitsetAdd(), antlr3BitsetMember(), and antlr3BitsetRemove().

static void grow (pANTLR3_BITSET bitset, ANTLR3_INT32 newSize) [static]

References ANTLR3_CALLOC, ANTLR3_FREE, ANTLR3_MEMCPY, ANTLR3_BITSET_LIST_struct::bits, ANTLR3_BITSET_struct::blist, and ANTLR3_BITSET_LIST_struct::length.

Referenced by antlr3BitsetSetAPI().

static void growToInclude (pANTLR3_BITSET bitset, ANTLR3_INT32 bit) [static]

References ANTLR3_BITSET_struct::blist, ANTLR3_BITSET_struct::grow, ANTLR3_BITSET_LIST_struct::length, and numWordsToHold().

Referenced by antlr3BitsetAdd(), and antlr3BitsetORInPlace().

static ANTLR3_UINT32 numWordsToHold (ANTLR3_UINT32 bit) [static]

References ANTLR3_BITSET_LOG_BITS.

Referenced by growToInclude().

static ANTLR3_UINT32 wordNumber (ANTLR3_UINT32 bit) [static]

References ANTLR3_BITSET_LOG_BITS.

Referenced by antlr3BitsetAdd(), antlr3BitsetMember(), and antlr3BitsetRemove().

Author

Generated automatically by Doxygen for ANTLR3C from the source code.

Referenced By

antlr3-bitMask(3), antlr3BitsetAdd(3), antlr3BitsetClone(3), antlr3BitsetEquals(3), antlr3BitsetFree(3), antlr3BitsetIsNil(3), antlr3BitsetMember(3), antlr3BitsetNumBits(3), antlr3BitsetOR(3), antlr3BitsetORInPlace(3), antlr3BitsetRemove(3), antlr3BitsetSize(3), antlr3BitsetToIntList(3), antlr3-grow(3), antlr3-growToInclude(3), antlr3-numWordsToHold(3) and antlr3-wordNumber(3) are aliases of antlr3bitset.c(3).

Tue Oct 4 2016 Version 3.3.1 ANTLR3C