⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldhtml.c

📁 一个简单的数据库管理工具
💻 C
📖 第 1 页 / 共 2 页
字号:
    if(ISeFalse(mk_PI("NULL",gsStringBuf))) {	ParseErr("FATAL Error:mk_PI(NULL,%%s) failed");	gbFatal=eTrue;	return(Err_s);    }    return(InBetween_s);}/*/* The InTag State */eParseState_t f031(){ParseErr("Got 'lt' within a tag")   ;return(Err_s);}eParseState_t f032(){ParseErr("Got 'lt+/' within a tag") ;return(Err_s);}eParseState_t f033(){ParseErr("Got 'lt+!' within a tag") ;return(Err_s);}eParseState_t f034(){ParseErr("Got 'lt' before tag name");return(Err_s);}eParseState_t f035(){ParseErr("Got '=' before tag name") ;return(Err_s);}eParseState_t f036(){    if(ISeFalse(mk_PI(gsStringBuf,0))) {	ParseErr("ERR:InTag:mk_PI(%s,null) failed",gsStringBuf);	gbFatal=eTrue;	return(Err_s);    }    return(InAtt_s);}/*/* The InAtt State */eParseState_t f041(){ParseErr("Got 'lt' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }eParseState_t f042(){ParseErr("Got 'lt+/' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }eParseState_t f043(){ParseErr("Got 'lt+!' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }/*eParseState_t f044(){if(!isEmpty((gpPI))) return(InContents_s);/*		     else		  return(InBetween_s);/*		    } */eParseState_t f044(){if(!isEmpty((gpPI))) {			/* giLevel++;			/* galPI[giLevel] = gpPI->lPI;			 */			return(InBetween_s);		    }		     else return(InContents_s);		    }eParseState_t f045(){ParseErr("Got '=' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }eParseState_t f046(){    gpSym = NewPIA();    if(!gpSym){	ParseErr("NewPIA Failed in parser");	gbFatal=eTrue;	return(Err_s);    }    /* (void)memset(gpSym,0,sizeof(SYMBOL));     */    gpSym->iType = PIA_SYMBOL;    gpSym->pName = DupBuf(gsStringBuf);    gpSym->pValue= 0;    ENQ(gpPI->lPIA,gpSym);    return(InAttAssign_s);}/*/* The InAttAssign State */eParseState_t f051(){ParseErr("Got 'lt' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }eParseState_t f052(){ParseErr("Got 'lt+/' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }eParseState_t f053(){ParseErr("Got 'lt+!' within tag, \"%s\"",gpTAG->pTagName);		    return(Err_s); 		    }/* eParseState_t f054(){if(!isEmpty((gpPI))) return(InContents_s);/* 		     else		  return(InBetween_s);/* 		    } */eParseState_t f054(){if(!isEmpty((gpPI))) {			/* giLevel++;			/* galPI[giLevel] = gpPI->lPI;			 */			return(InBetween_s);		    }		     else return(InContents_s);		    }eParseState_t f055(){return(InValue_s);}eParseState_t f056(){    gpSym = NewPIA();    if(!gpSym){	ParseErr("NewPIA Failed to parser");	gbFatal=eTrue;	return(Err_s);    }    (void)memset(gpSym,0,sizeof(SYMBOL));    gpSym->iType = PIA_SYMBOL;    gpSym->pName = DupBuf(gsStringBuf);    gpSym->pValue= 0;    ENQ(gpPI->lPIA,gpSym);    return(InAttAssign_s);}/*/* The InValue State */eParseState_t f061(){ParseErr("Got 'lt' within tag, \"%s\"" ,gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f062(){ParseErr("Got 'lt+/' within tag, \"%s\"" ,gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f063(){ParseErr("Got 'lt+!' within tag, \"%s\"" ,gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f064(){ParseErr("Got 'gt' within attribute assign of tag, \"%s\""			    ,gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f065(){ParseErr("Got '= =' within tag, \"%s\"" ,gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f066(){		    gpSym->pValue = DupBuf(gsStringBuf);		    return(InAtt_s);		    }/*/* The InContents State */eParseState_t f071(){return(InTag_s); }eParseState_t f072(){return(InEndTag_s); }eParseState_t f073(){return(InComment_s); }eParseState_t f074(){ParseErr("Got 'gt' after tag, \"%s\"",gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f075(){ParseErr("Got '=' after tag, \"%s\"",gpTAG->pTagName);		    return(Err_s);		    }eParseState_t f076(){		    gpPI->pPiContents = DupBuf(gsStringBuf);		    return(InBetween_s); 		    }/*/* The InComment State */eParseState_t f081(){return(InComment_s); }eParseState_t f082(){return(InComment_s); }eParseState_t f083(){return(InComment_s); }eParseState_t f084(){return(InBetween_s); }eParseState_t f085(){return(InComment_s); }eParseState_t f086(){    int iSize = iStrLen(gsStringBuf);    gsStringBuf[iSize+3]=0;	/* NULL */    gsStringBuf[iSize+2]='>';	/* Closing of Tag '>' */    while( --iSize>=0 )		/* The Contents */	gsStringBuf[iSize+2] = gsStringBuf[iSize];    gsStringBuf[1] = '!';	/* Comment identifier */    gsStringBuf[0] = '<';	/* Starting TAG symbol */    if(*gsStringBuf && ISeFalse(mk_PI("!",gsStringBuf))) {	ParseErr("ERR:InComment:Failed to make COMMENT");	gbFatal=eTrue;	return(Err_s);    }    return(InComment_s);} /* was InEndTag2 *//*/* The InEndTag State, just got '</' now looking for TAG-NAME */eParseState_t f091(){ParseErr("missing tag name in trailer");return(Err_s); }eParseState_t f092(){ParseErr("missing tag name in trailer");return(Err_s); }eParseState_t f093(){ParseErr("missing tag name in trailer");return(Err_s); }eParseState_t f094(){ParseErr("missing tag name in trailer");return(Err_s); }eParseState_t f095(){ParseErr("missing tag name in trailer");return(Err_s); }eParseState_t f096(){    int iLevel = giLevel;    TAG *pTAG;    /* Make sure Tag was non-empty...     */    if(ISeFalse(GetTAGByName(gsStringBuf,&pTAG))) {    /*    /* May want to use NULL, here???     */	MsgPush("Unknown tag, \"%s\"", gsStringBuf);	return(Err_s);    }    if(is_casematch(pTAG->pTagEmptyInd,"Y")) {	/* Empty TAG with end tag, WARNING...	 */	MsgPush("WARN(%s):Empty Tag w/END-TAG ignored, \"%s\" near line %d"		,pTAG->pTagEmptyInd		,gsStringBuf		,giLineNbr	        ,gaPI[(giLevel>0)?giLevel-1:0]->pTagName	        ,(giLevel>0)?giLevel-1:0		);	return(InEndTag2_s);    }        /*    /* OK, Tag was non-empty, let's find it on the stack     */    while(--giLevel>=0	&& !is_casematch(gaPI[giLevel]->pTagName,gsStringBuf))    {	/*	DebugHTML(__FILE__,__LINE__,1	,"WARN(%s): Possible missing END-TAG, \"%s\" near line %d"	       ,gaPI[giLevel]->pTag->pTagEmptyInd	       ,gaPI[giLevel]->pTagName	       ,giLineNbr	       );	 */	MsgPush("WARN(%s): Possible missing END-TAG, \"%s\" near line %d"	       ,gaPI[giLevel]->pTag->pTagEmptyInd	       ,gaPI[giLevel]->pTagName	       ,giLineNbr	       );    }    if(giLevel<0) {	MsgPush("Failed to find matching TAG for END-TAG, \"%s\" at line %d"	       ,gsStringBuf	       ,giLineNbr	       );	/* giLevel = iLevel-1;	 */	giLevel = iLevel;	/* Couldn't find it; don't pop */	return(Err_s);    }    return(InEndTag2_s);}/*/* The InEndTag2 State (looking for '>') */eParseState_t f101(){ParseErr("Failed to find 'gt'");return(Err_s);}eParseState_t f102(){ParseErr("Failed to find 'gt'");return(Err_s);}eParseState_t f103(){ParseErr("Failed to find 'gt'");return(Err_s);}eParseState_t f104(){return(InBetween_s);}eParseState_t f105(){ParseErr("Failed to find 'gt'");return(Err_s);}eParseState_t f106(){ParseErr("Failed to find 'gt'");return(Err_s);}/*/* The inErr State */eParseState_t f111(){return(ISeTrue(gbFatal)?EndOfFile_s:InTag_s);}eParseState_t f112(){return(ISeTrue(gbFatal)?EndOfFile_s:InEndTag_s);}eParseState_t f113(){return(ISeTrue(gbFatal)?EndOfFile_s:InComment_s);}eParseState_t f114(){return(ISeTrue(gbFatal)?EndOfFile_s:InBetween_s);}eParseState_t f115(){return(ISeTrue(gbFatal)?EndOfFile_s:Err_s);}eParseState_t f116(){return(ISeTrue(gbFatal)?EndOfFile_s:InBetween_s);}static eBoolean_tmk_PI(char *pTagName     ,char *pPiContents     ){    DebugHTML(__FILE__,__LINE__,4		,"mk_PI(%s,%s) line=%d"		,pTagName		,pPiContents?pPiContents:"**Null**"		,giLineNbr		);    (gpPI) = NewPI();    if(!gpPI) {	ParseErr("NewPI Failed in parser");	gbFatal=eTrue;	return(Err_s);    }    (gpPI)->iLevel = giLevel;    (gpPI)->pTagName = DupBuf(pTagName);    (gpPI)->pPage = gpPAGE;    (gpPI)->pTag = gpTAG;    (gpPI)->lPI = l_create("QUEUE");    (gpPI)->lPIA= l_create("INORDER");    (gpPI)->iLineNbr = giLineNbr;    if(is_casematch(pTagName,"NULL")){	gpTAG = &gNULLTag;    } else {	if(ISeFalse(GetTAGByName(pTagName,&gpTAG))) {	/*	/* May want to use NULL, here???	 */	    ParseErr("Unknown tag, \"%s\"", gsStringBuf);	    return(eFalse);	}    }    (gpPI)->pTag = gpTAG;    ENQ(galPI[giLevel], gpPI);	/* Put PI in correct PI List */    gaPI[giLevel] = gpPI;	/* Store pPI in PI Array */    gpPI->pPIContext = giLevel>0 ? gaPI[giLevel-1]: 0;				/* Build the CONTEXT pointer */    (gpPI)->pPiContents = DupBuf(pPiContents);    if(!isEmpty((gpPI))) {	giLevel++;	galPI[giLevel] = gpPI->lPI;    }    return(eTrue);}/*/* Report a Parse Error */static voidParseErr    (    const char *pFmt    ,...    ){    va_list pParms;    char sBuf[BUFSIZ];    /*    /* Build PrintF style buffer     */    va_start(pParms,pFmt);    vsprintf(sBuf,pFmt,pParms);    /* Add Line Number information     */    MsgPush("ParseErr line: %.4d: %s",giLineNbr,sBuf);}static intGetC(){    int c;    c= (int) *gpStringBuf++;    if(c=='\n') giLineNbr++;    if(c=='\0') return(EOF);    return(c);}static voidunGetC(int c){    *(--gpStringBuf) = (char)c;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -