📄 ldhtml.c
字号:
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 + -