(PICS-1.1 "http://www.ages.org/our-service/v1.0/" 1 labels 2 for "http://www.w3.org/pub/WWW/" 3 5 generic true by "abaird@w3.org" ratings (age 11) 6 -6 -5 -3 for "http://www.w3.org/pub/WWW/" 3 5 generic true by "abaird@w3.org" ratings (age 11) 6 -6 -5 -3 error (not-labeled "http://www.w3.org/unknown") 3 11 -11 -3 "http://www.rsac.org/v1.0" labels -2 2 for "http://www.w3.org/pub/WWW" 3 5 generic true by "abaird@w3.org" ratings (v 0 s 0 n 0 l 0) 6 -6 6 -6 6 -6 6 -6 -5 -3 for "http://www.w3.org/pub/WWW" 3 5 generic true by "abaird@w3.org" ratings (v 0 s 0 n 0 l 0) 6 -6 6 -6 6 -6 6 -6 -5 -3 error (not-labeled "http://www.w3.org/unknown") 3 11 -11 -3 error (no-ratings "unknown service")) -2 2 9 -9 -2 -1 = 0 - parsing end
LabelTargetCallback_t targetCallback; StateRet_t targetCallback(CSLabel_t * pCSMR, CSParse_t * pCSParse, CSLLTC_t target, BOOL closed, void * pVoid) { int change = closed ? -target : target; Total += change; printf("%3d ", change); return StateRet_OK; }These values are defined in CSLL.html.
typedef enum { CSLLTC_LIST = 1, CSLLTC_SERVICE, CSLLTC_LABEL, CSLLTC_LABTREE, CSLLTC_SINGLE, CSLLTC_RATING, CSLLTC_RANGE, CSLLTC_AWKWARD, CSLLTC_NORAT, CSLLTC_SRVERR, CSLLTC_LABERR, CSLLTC_EXTEN, CSLLTC_EXTDATA, CSLLTC_COUNT } CSLLTC_t;We can see from the lines
labels 2 for "http://www.w3.org/pub/WWW/" 3 5that the labels keyword told the parser that it had started a service, and the for keyword denoted a single-label within a label. As the parser finishes a data type, it calls the callback again to say that the data is finished:
error (no-ratings "unknown service")) -2 2 9 -9 -2 -1 = 0 - parsing end"-2 -1" closes the service and the list. The sum of 0 shows that each data type entered was exited appropriately. "parsing end" shows that the parser had closed all data types and assumed that the input would be finished.