예제 #1
0
void RBBISymbolTable::rbbiSymtablePrint() const {
    RBBIDebugPrintf("Variable Definitions\n"
           "Name               Node Val     String Val\n"
           "----------------------------------------------------------------------\n");

    int32_t pos = -1;
    const UHashElement  *e   = NULL;
    for (;;) {
        e = uhash_nextElement(fHashTable,  &pos);
        if (e == NULL ) {
            break;
        }
        RBBISymbolTableEntry  *s   = (RBBISymbolTableEntry *)e->value.pointer;

        RBBI_DEBUG_printUnicodeString(s->key, 15);
        RBBIDebugPrintf("   %8p   ", (void *)s->val);
        RBBI_DEBUG_printUnicodeString(s->val->fLeftChild->fText);
        RBBIDebugPrintf("\n");
    }

    RBBIDebugPrintf("\nParsed Variable Definitions\n");
    pos = -1;
    for (;;) {
        e = uhash_nextElement(fHashTable,  &pos);
        if (e == NULL ) {
            break;
        }
        RBBISymbolTableEntry  *s   = (RBBISymbolTableEntry *)e->value.pointer;
        RBBI_DEBUG_printUnicodeString(s->key);
        s->val->fLeftChild->printTree(TRUE);
        RBBIDebugPrintf("\n");
    }
}
void RBBISetBuilder::printSets() {
    int                   i;

    RBBIDebugPrintf("\n\nUnicode Sets List\n------------------\n");
    for (i=0; ; i++) {
        RBBINode        *usetNode;
        RBBINode        *setRef;
        RBBINode        *varRef;
        UnicodeString    setName;

        usetNode = (RBBINode *)fRB->fUSetNodes->elementAt(i);
        if (usetNode == NULL) {
            break;
        }

        RBBIDebugPrintf("%3d    ", i);
        setName = UNICODE_STRING("anonymous", 9);
        setRef = usetNode->fParent;
        if (setRef != NULL) {
            varRef = setRef->fParent;
            if (varRef != NULL  &&  varRef->fType == RBBINode::varRef) {
                setName = varRef->fText;
            }
        }
        RBBI_DEBUG_printUnicodeString(setName);
        RBBIDebugPrintf("   ");
        RBBI_DEBUG_printUnicodeString(usetNode->fText);
        RBBIDebugPrintf("\n");
        if (usetNode->fLeftChild != NULL) {
            usetNode->fLeftChild->printTree(TRUE);
        }
    }
    RBBIDebugPrintf("\n");
}
예제 #3
0
void RBBINode::printNode() {
    static const char * const nodeTypeNames[] = {
                "setRef",
                "uset",
                "varRef",
                "leafChar",
                "lookAhead",
                "tag",
                "endMark",
                "opStart",
                "opCat",
                "opOr",
                "opStar",
                "opPlus",
                "opQuestion",
                "opBreak",
                "opReverse",
                "opLParen"
    };

    if (this==NULL) {
        RBBIDebugPrintf("%10p", (void *)this);
    } else {
        RBBIDebugPrintf("%10p  %12s  %10p  %10p  %10p      %4d     %6d   %d ",
            (void *)this, nodeTypeNames[fType], (void *)fParent, (void *)fLeftChild, (void *)fRightChild,
            fSerialNum, fFirstPos, fVal);
        if (fType == varRef) {
            RBBI_DEBUG_printUnicodeString(fText);
        }
    }
    RBBIDebugPrintf("\n");
}
예제 #4
0
파일: rbbisetb.cpp 프로젝트: Botyto/Core
void RBBISetBuilder::printRanges()
{
	RangeDescriptor    *   rlRange;
	int                    i;

	RBBIDebugPrintf("\n\n Nonoverlapping Ranges ...\n");
	for (rlRange = fRangeList; rlRange != 0; rlRange = rlRange->fNext)
	{
		RBBIDebugPrintf("%2i  %4x-%4x  ", rlRange->fNum, rlRange->fStartChar, rlRange->fEndChar);

		for (i = 0; i < rlRange->fIncludesSets->size(); i++)
		{
			RBBINode    *   usetNode    = (RBBINode *)rlRange->fIncludesSets->elementAt(i);
			UnicodeString   setName = UNICODE_STRING("anon", 4);
			RBBINode    *   setRef = usetNode->fParent;
			if (setRef != NULL)
			{
				RBBINode * varRef = setRef->fParent;
				if (varRef != NULL  &&  varRef->fType == RBBINode::varRef)
				{
					setName = varRef->fText;
				}
			}
			RBBI_DEBUG_printUnicodeString(setName); RBBIDebugPrintf("  ");
		}
		RBBIDebugPrintf("\n");
	}
}
예제 #5
0
파일: rbbisetb.cpp 프로젝트: Botyto/Core
void RBBISetBuilder::printRangeGroups()
{
	RangeDescriptor    *   rlRange;
	RangeDescriptor    *   tRange;
	int                    i;
	int                    lastPrintedGroupNum = 0;

	RBBIDebugPrintf("\nRanges grouped by Unicode Set Membership...\n");
	for (rlRange = fRangeList; rlRange != 0; rlRange = rlRange->fNext)
	{
		int groupNum = rlRange->fNum & 0xbfff;
		if (groupNum > lastPrintedGroupNum)
		{
			lastPrintedGroupNum = groupNum;
			RBBIDebugPrintf("%2i  ", groupNum);

			if (rlRange->fNum & 0x4000) { RBBIDebugPrintf(" <DICT> ");}

			for (i = 0; i < rlRange->fIncludesSets->size(); i++)
			{
				RBBINode    *   usetNode    = (RBBINode *)rlRange->fIncludesSets->elementAt(i);
				UnicodeString   setName = UNICODE_STRING("anon", 4);
				RBBINode    *   setRef = usetNode->fParent;
				if (setRef != NULL)
				{
					RBBINode * varRef = setRef->fParent;
					if (varRef != NULL  &&  varRef->fType == RBBINode::varRef)
					{
						setName = varRef->fText;
					}
				}
				RBBI_DEBUG_printUnicodeString(setName); RBBIDebugPrintf(" ");
			}

			i = 0;
			for (tRange = rlRange; tRange != 0; tRange = tRange->fNext)
			{
				if (tRange->fNum == rlRange->fNum)
				{
					if (i++ % 5 == 0)
					{
						RBBIDebugPrintf("\n    ");
					}
					RBBIDebugPrintf("  %05x-%05x", tRange->fStartChar, tRange->fEndChar);
				}
			}
			RBBIDebugPrintf("\n");
		}
	}
	RBBIDebugPrintf("\n");
}