📄 cslabel.c
字号:
{ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); ParseContext_t * pParseContext = pCSParse->pParseContext; if (!token || !pParseContext->observedQuotes) return StateRet_WARN_NO_MATCH; if (Punct_badDemark(pStateToken->validPunctuation, demark)) return StateRet_WARN_BAD_PUNCT; CHECK_CAR_SET(CharSet_URL) SVal_readVal(&pCSLabel->pCurrentServiceInfo->rating_service, token); return StateRet_OK;}PRIVATE StateRet_t ServiceInfo_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentServiceInfo = 0; return StateRet_OK;}PRIVATE void ServiceInfo_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); HTList_removeObject(pCSLabel->pCSLLData->serviceInfos, (void *)pCSLabel->pCurrentServiceInfo); ServiceInfo_free(pCSLabel->pCurrentServiceInfo); pCSLabel->pCurrentServiceInfo = 0;}PRIVATE StateRet_t ServiceInfo_clearOpts(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabelOptions = 0; /* needed to flag new SingleLabel started by option */ return StateRet_OK;}PRIVATE StateRet_t Label_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabel = Label_new(); pCSLabel->currentLabelNumber++; HTList_appendObject(pCSLabel->pCurrentServiceInfo->labels, (void*)pCSLabel->pCurrentLabel); return StateRet_OK;}PRIVATE StateRet_t Label_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabel = 0; return StateRet_OK;}PRIVATE void Label_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); HTList_removeObject(pCSLabel->pCurrentServiceInfo->labels, pCSLabel->pCurrentLabel); Label_free(pCSLabel->pCurrentLabel); pCSLabel->pCurrentLabel = 0;}PRIVATE StateRet_t LabelTree_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCSLLData->hasTree = 1; pCSLabel->pCurrentLabelTree = pCSLabel->pCurrentLabel->singleLabels = HTList_new(); return StateRet_OK;}PRIVATE StateRet_t LabelTree_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse);/* Label_close(pCSParse, token, demark); */ pCSLabel->pCurrentLabelTree = 0; return StateRet_OK;}PRIVATE void LabelTree_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); SingleLabel_t * pSingleLabel; while ((pSingleLabel = (SingleLabel_t *) HTList_removeLastObject(pCSLabel->pCurrentLabel->singleLabels))) SingleLabel_free(pSingleLabel); HTList_delete(pCSLabel->pCurrentLabel->singleLabels); pCSLabel->pCurrentLabel->singleLabels = 0;}PRIVATE StateRet_t SingleLabel_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentSingleLabel = SingleLabel_new(pCSLabel->pCurrentLabelOptions, pCSLabel->pCurrentServiceInfo->pLabelOptions); if (pCSLabel->pCurrentLabel->singleLabels) HTList_appendObject(pCSLabel->pCurrentLabel->singleLabels, (void*)pCSLabel->pCurrentSingleLabel); else pCSLabel->pCurrentLabel->pSingleLabel = pCSLabel->pCurrentSingleLabel; pCSLabel->pCurrentLabelOptions = pCSLabel->pCurrentSingleLabel->pLabelOptions; return StateRet_OK;}PRIVATE StateRet_t SingleLabel_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentSingleLabel = 0; return StateRet_OK;}PRIVATE void SingleLabel_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); if (pCSLabel->pCurrentLabel->pSingleLabel) pCSLabel->pCurrentLabel->pSingleLabel = 0; else HTList_removeObject(pCSLabel->pCurrentLabel->singleLabels, (void *)pCSLabel->pCurrentSingleLabel); SingleLabel_free(pCSLabel->pCurrentSingleLabel); pCSLabel->pCurrentSingleLabel = 0;}PRIVATE StateRet_t LabelRating_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); if (!pCSLabel->pCurrentSingleLabel) /* switched from label to rating on "r" rather than <option> */ SingleLabel_open(pCSParse, token, demark); pCSLabel->pCurrentLabelRating = LabelRating_new(); HTList_appendObject(pCSLabel->pCurrentSingleLabel->labelRatings, (void*)pCSLabel->pCurrentLabelRating); pCSLabel->pCurrentLabelOptions = 0; return StateRet_OK;}PRIVATE StateRet_t LabelRating_getId(CSParse_t * pCSParse, StateToken_t * pStateToken, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); if (Punct_badDemark(pStateToken->validPunctuation, demark)) return StateRet_WARN_BAD_PUNCT; CHECK_CAR_SET(CharSet_TRANSMIT_NAME) SVal_readVal(&pCSLabel->pCurrentLabelRating->identifier, token); return StateRet_OK;}PRIVATE StateRet_t LabelRating_getValue(CSParse_t * pCSParse, StateToken_t * pStateToken, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); if (Punct_badDemark(pStateToken->validPunctuation, demark)) return StateRet_WARN_BAD_PUNCT; FVal_readVal(&pCSLabel->pCurrentLabelRating->value, token); return StateRet_OK;}PRIVATE StateRet_t LabelRating_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabelRating = 0; return StateRet_OK;}PRIVATE void LabelRating_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); HTList_removeObject(pCSLabel->pCurrentSingleLabel->labelRatings, (void *)pCSLabel->pCurrentLabelRating); LabelRating_free(pCSLabel->pCurrentLabelRating); pCSLabel->pCurrentLabelRating = 0;}PRIVATE StateRet_t LabelRating_next(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); SingleLabel_doClose(pCSParse, token, demark); if (pCSLabel->pCurrentLabelTree) { SETNEXTSTATE(&LabelTree_targetObject, SubState_A); } else { Label_doClose(pCSParse, token, demark); SETNEXTSTATE(&Awkward_targetObject, SubState_A); } return StateRet_OK;}PRIVATE StateRet_t LabelRatingRange_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentRange = 0; pCSLabel->pCurrentLabelRating->ranges = HTList_new(); return StateRet_OK;}PRIVATE StateRet_t LabelRatingRange_get(CSParse_t * pCSParse, StateToken_t * pStateToken, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); LabelRating_t * pLabelRating = pCSLabel->pCurrentLabelRating; Range_t * me; char * ptr, * backPtr; if (!token) return StateRet_WARN_NO_MATCH; if (Punct_badDemark(pStateToken->validPunctuation, demark)) return StateRet_WARN_BAD_PUNCT; if ((me = (Range_t *) HT_CALLOC(1, sizeof(Range_t))) == NULL) HT_OUTOFMEM("Range_t");/* me = Range_new(); */ HTList_appendObject(pLabelRating->ranges, (void *)me); backPtr = ptr = token; while (*ptr) { if (*ptr == ':') { *ptr = 0; ptr++; break; } ptr++; } FVal_readVal(&me->min, backPtr); if (*ptr) FVal_readVal(&me->max, ptr); return StateRet_OK;}PRIVATE StateRet_t LabelRatingRange_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentRange = 0; return StateRet_OK;}PRIVATE void LabelRatingRange_destroy(CSParse_t * pCSParse){}PRIVATE StateRet_t Awkward_open(CSParse_t * pCSParse, char * token, char demark){ return StateRet_OK;}PRIVATE StateRet_t Awkward_close(CSParse_t * pCSParse, char * token, char demark){ return StateRet_OK;}PRIVATE void Awkward_destroy(CSParse_t * pCSParse){}PRIVATE StateRet_t error_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabelError = LabelError_new(); if (pCSLabel->pCurrentLabel) pCSLabel->pCurrentLabel->pLabelError = pCSLabel->pCurrentLabelError; else pCSLabel->pCurrentServiceInfo->pLabelError = pCSLabel->pCurrentLabelError; return StateRet_OK;}PRIVATE StateRet_t error_getExpl(CSParse_t * pCSParse, StateToken_t * pStateToken, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); ParseContext_t * pParseContext = pCSParse->pParseContext; char * explaination = 0; if (!token || !pParseContext->observedQuotes) return StateRet_WARN_NO_MATCH; if (Punct_badDemark(pStateToken->validPunctuation, demark)) return StateRet_WARN_BAD_PUNCT; CHECK_CAR_SET(CharSet_EXT_ALPHANUM) StrAllocCopy(explaination, token); HTList_appendObject(pCSLabel->pCurrentLabelError->explanations, explaination); return StateRet_OK;}PRIVATE StateRet_t error_close(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); pCSLabel->pCurrentLabelError = 0; if (pCSLabel->pCurrentLabel) pCSLabel->pCurrentLabel->pLabelError = pCSLabel->pCurrentLabelError; else pCSLabel->pCurrentServiceInfo->pLabelError = pCSLabel->pCurrentLabelError; return StateRet_OK;}PRIVATE void error_destroy(CSParse_t * pCSParse){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); if (pCSLabel->pCurrentLabel) pCSLabel->pCurrentLabel->pLabelError = 0; else pCSLabel->pCurrentServiceInfo->pLabelError = 0; LabelError_free(pCSLabel->pCurrentLabelError);}PRIVATE StateRet_t Extension_open(CSParse_t * pCSParse, char * token, char demark){ CSLabel_t * pCSLabel = GetCSLabel(pCSParse); Extension_t * me = Extension_new();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -