亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cslabel.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 5 頁
字號:
#include "wwwsys.h"/*#include "HTUtils.h" */#include "HTList.h"#include "HTString.h"#include "CSParse.h"#include "CSLL.h"#include "CSLLSt.h"#define GetCSLabel(A) ((A)->target.pCSLabel)#define SETNEXTSTATE(target, subState) \  pCSParse->pTargetObject = target; \  pCSParse->currentSubState = subState;/* C H A R A C T E R   S E T   V A L I D A T I O N *//* The BNF for PICS labels describes the valid character ranges for each of  * the label fields. Defining NO_CHAR_TEST will disable the tedious checking * of these ranges for a slight performance increase. */#ifdef NO_CHAR_TEST#define charSetOK(A, B, C)#define CHECK_CAR_SET(A)#define SET_CHAR_SET(A)#else /* !NO_CHAR_TEST */typedef enum {CharSet_ALPHAS = 1, CharSet_DIGITS = 2, CharSet_PLUSMINUS = 4, CharSet_FORSLASH = 8,               CharSet_EXTENS = 0x10, CharSet_BASE64_EXTRAS = 0x20, CharSet_DATE_EXTRAS = 0x40, CharSet_URL_EXTRAS = 0x80,               /* ------------------ BNF names are combinations of the above ------------------- */              CharSet_NUMBER        = CharSet_DIGITS | CharSet_PLUSMINUS,               CharSet_ALPHANUMPM    = CharSet_ALPHAS | CharSet_DIGITS | CharSet_PLUSMINUS,              CharSet_TRANSMIT_NAME = CharSet_ALPHANUMPM | CharSet_FORSLASH,               CharSet_EXT_ALPHANUM  = CharSet_ALPHANUMPM | CharSet_EXTENS,              CharSet_BASE64        = CharSet_ALPHAS | CharSet_DIGITS | CharSet_BASE64_EXTRAS,              CharSet_URL           = CharSet_ALPHAS | CharSet_DIGITS | CharSet_URL_EXTRAS,              CharSet_DATE          = CharSet_DIGITS | CharSet_DATE_EXTRAS,              CharSet_EXT_DATA      = CharSet_DATE | CharSet_URL | CharSet_NUMBER | CharSet_EXT_ALPHANUM             } CharSet_t; PRIVATE BOOL charSetOK(CSParse_t * pCSParse, char * checkMe, CharSet_t set);#define CHECK_CAR_SET(A) \    if (!charSetOK(pCSParse, token, A)) \        return StateRet_ERROR_BAD_CHAR;#define SET_CHAR_SET(A) pCSLabel->targetCharSet = A;#endif /* !NO_CHAR_TEST *//* C S L L S t a t e *//* This holds label list data and the methods to view it. All application  * interface is intended to go through these methods. See User/Parsing.html */struct CSLabel_s {    CSLLData_t * pCSLLData;    LabelError_t * pCurrentLabelError;    LabelOptions_t * pCurrentLabelOptions;	Extension_t * pCurrentExtension;	ExtensionData_t * pCurrentExtensionData;    ServiceInfo_t * pCurrentServiceInfo;    Label_t * pCurrentLabel;    int currentLabelNumber;    HTList * pCurrentLabelTree;    SingleLabel_t * pCurrentSingleLabel;    LabelRating_t * pCurrentLabelRating;    Range_t * pCurrentRange;#ifndef NO_CHAR_TEST    CharSet_t targetCharSet;#endif	LabelTargetCallback_t * pLabelTargetCallback;	LLErrorHandler_t * pLLErrorHandler;};/* forward references to parser functions */PRIVATE TargetObject_t LabelList_targetObject;PRIVATE TargetObject_t ServiceInfo_targetObject;PRIVATE TargetObject_t ServiceNoRat_targetObject;PRIVATE TargetObject_t ServiceError_targetObject;PRIVATE TargetObject_t Label_targetObject;PRIVATE TargetObject_t LabelError_targetObject;PRIVATE TargetObject_t LabelTree_targetObject;PRIVATE TargetObject_t SingleLabel_targetObject;PRIVATE TargetObject_t LabelRating_targetObject;PRIVATE TargetObject_t LabelRatingRange_targetObject;PRIVATE TargetObject_t Extension_targetObject;PRIVATE TargetObject_t ExtensionData_targetObject;PRIVATE TargetObject_t Awkward_targetObject;PRIVATE Check_t hasToken;PRIVATE Check_t LabelList_getVersion;PRIVATE Check_t ServiceInfo_getServiceId;PRIVATE Check_t error_getExpl;PRIVATE Check_t getOption;PRIVATE Check_t getOptionValue;PRIVATE Check_t LabelRating_getId;PRIVATE Check_t LabelRating_getValue;PRIVATE Check_t LabelRatingRange_get;PRIVATE Check_t isQuoted;PRIVATE Check_t Extension_getURL;PRIVATE Check_t ExtensionData_getData;PRIVATE Open_t LabelList_open;PRIVATE Open_t ServiceInfo_open;PRIVATE Open_t error_open;PRIVATE Open_t Label_open;PRIVATE Open_t LabelTree_open;PRIVATE Open_t SingleLabel_open;PRIVATE Open_t LabelRating_open;PRIVATE Open_t LabelRatingRange_open;PRIVATE Open_t Awkward_open;PRIVATE Open_t Extension_open;PRIVATE Open_t ExtensionData_open;PRIVATE Close_t LabelList_close;PRIVATE Close_t ServiceInfo_close;PRIVATE Close_t error_close;PRIVATE Close_t Label_close;PRIVATE Close_t LabelTree_close;PRIVATE Close_t SingleLabel_close;PRIVATE Close_t LabelRating_close;PRIVATE Close_t LabelRatingRange_close;PRIVATE Close_t Awkward_close;PRIVATE Close_t Extension_close;PRIVATE Close_t ExtensionData_close;PRIVATE Destroy_t LabelList_destroy;PRIVATE Destroy_t ServiceInfo_destroy;PRIVATE Destroy_t Label_destroy;PRIVATE Destroy_t LabelTree_destroy;PRIVATE Destroy_t SingleLabel_destroy;PRIVATE Destroy_t LabelRating_destroy;PRIVATE Destroy_t LabelRatingRange_destroy;PRIVATE Destroy_t Awkward_destroy;PRIVATE Destroy_t error_destroy;PRIVATE Destroy_t Extension_destroy;PRIVATE Destroy_t ExtensionData_destroy;PRIVATE Prep_t ServiceInfo_clearOpts;PRIVATE Prep_t LabelRating_next;PRIVATE Prep_t Extension_mandatory;PRIVATE Prep_t Extension_next;PRIVATE Prep_t ExtensionData_next;PRIVATE Prep_t SingleLabel_doClose;PRIVATE Prep_t Label_doClose;PRIVATE TargetChangeCallback_t targetChangeCallback;PRIVATE ParseErrorHandler_t parseErrorHandler;/* CSParse_doc states *//* L A B E L   L I S T   P A R S E R   S T A T E S *//* This contains all the states in the BNF for PICS labels.  * See User/Parsing.html for details. */PRIVATE StateToken_t LabelList_stateTokens[] = {     /* A: fresh LabelList       C: expect end */     {       "open", SubState_N,    Punct_ALL,              0,        0, 0, 0,   &LabelList_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {"get version", SubState_A,  Punct_WHITE, &LabelList_getVersion, 0, 0, 0, &ServiceInfo_targetObject, SubState_N, 0, 0},     {"end of list", SubState_C, Punct_RPAREN,              0,        0, 0, 0,   &LabelList_targetObject, SubState_A, Command_MATCHANY|Command_CLOSE, 0}    };PRIVATE TargetObject_t LabelList_targetObject = {"LabelList", &LabelList_open, &LabelList_close, &LabelList_destroy, LabelList_stateTokens, raysize(LabelList_stateTokens), CSLLTC_LIST};PRIVATE StateToken_t ServiceInfo_stateTokens[] = {    /* A: fresh ServiceInfo       B: has service id       C: needs option value       D: call from Awkward or NoRat to close        E: call from Awkward to re-enter       F: call from Awkward to handle no-ratings error */     {             "open", SubState_N,    Punct_ALL,                0,        0,   0, 0, &ServiceInfo_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {     "error w/o id", SubState_A, Punct_LPAREN,                0, "error",    0, 0, &ServiceNoRat_targetObject, SubState_N, 0, 0},     {       "service id", SubState_A,  Punct_WHITE, &ServiceInfo_getServiceId, 0, 0, 0,  &ServiceInfo_targetObject, SubState_B, 0, 0},     {    "service error", SubState_B, Punct_LPAREN,                0, "error",    0, 0, &ServiceError_targetObject, SubState_N, 0, 0},     {   "service option", SubState_B,  Punct_WHITE,       &getOption,   0,        0, 0,  &ServiceInfo_targetObject, SubState_C, 0, 0},     {"service extension", SubState_B, Punct_LPAREN,               0, "extension", 0, 0,    &Extension_targetObject, SubState_N, 0, 0},     { "label-mark close", SubState_B, Punct_RPAREN,                0, "l", "labels", 0, &LabelList_targetObject, SubState_C, Command_CLOSE|Command_CHAIN, 0},     {       "label-mark", SubState_B, Punct_WHITE|Punct_LPAREN,    0, "l", "labels", 0,     &Label_targetObject, SubState_N, Command_CHAIN, &ServiceInfo_clearOpts},     {     "option value", SubState_C, Punct_WHITE,    &getOptionValue,  0,        0, 0,  &ServiceInfo_targetObject, SubState_B, 0, 0},     {            "close", SubState_D, Punct_ALL,                   0,        0,   0, 0,    &LabelList_targetObject, SubState_C, Command_MATCHANY|Command_CLOSE|Command_CHAIN, 0},     {         "re-enter", SubState_E, Punct_ALL,                   0,        0,   0, 0,  &ServiceInfo_targetObject, SubState_N, Command_MATCHANY|Command_CLOSE|Command_CHAIN, 0},     {        "to no-rat", SubState_F, Punct_ALL,                   0,        0,   0, 0,  &ServiceInfo_targetObject, SubState_G, Command_MATCHANY|Command_CLOSE|Command_CHAIN, 0},     {    "no-rat opener", SubState_G, Punct_ALL,                   0,        0,   0, 0, &ServiceNoRat_targetObject, SubState_N, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0}    };PRIVATE TargetObject_t ServiceInfo_targetObject = {"ServiceInfo", ServiceInfo_open, &ServiceInfo_close, &ServiceInfo_destroy, ServiceInfo_stateTokens, raysize(ServiceInfo_stateTokens), CSLLTC_SERVICE};PRIVATE StateToken_t Label_stateTokens[] = {    /* A: fresh SingleLabel       C: route to Awkward from LabelTree and LabelError       D: from Awkward to LabelError */     {              "open", SubState_N,    Punct_ALL, 0,        0,    0,  0, &Label_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     { "single label mark", SubState_A,  Punct_WHITE, 0,  "l", "labels",  0,       &Label_targetObject, SubState_A, 0, 0}, /* stick around */     {   "tree label mark", SubState_A, Punct_LPAREN, 0,  "l", "labels",  0,   &LabelTree_targetObject, SubState_N, 0, 0},     {        "start tree", SubState_A, Punct_LPAREN, 0,         0,   0,  0,   &LabelTree_targetObject, SubState_N, 0, 0},     {       "label error", SubState_A, Punct_LPAREN, 0,   "error",   0,  0,  &LabelError_targetObject, SubState_N, 0, 0},     {"SingleLabel option", SubState_A, Punct_WHITE, &getOption, 0,   0,  0, &SingleLabel_targetObject, SubState_N, Command_CHAIN, 0},     {   "label extension", SubState_A, Punct_LPAREN, 0, "extension", 0,  0, &SingleLabel_targetObject, SubState_N, Command_CHAIN, 0},     {           "ratings", SubState_A, Punct_LPAREN, 0, "r", "ratings",  0, &SingleLabel_targetObject, SubState_N, Command_CHAIN, 0},     {        "to awkward", SubState_C,    Punct_ALL, 0,        0,    0,  0,     &Awkward_targetObject, SubState_A, Command_MATCHANY|Command_CLOSE, 0},     {  "awkward to error", SubState_D,    Punct_ALL, 0,        0,    0,  0, &LabelError_targetObject, SubState_N, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0}    };PRIVATE TargetObject_t Label_targetObject = {"Label", &Label_open, &Label_close, &Label_destroy, Label_stateTokens, raysize(Label_stateTokens), CSLLTC_LABEL};PRIVATE StateToken_t LabelTree_stateTokens[] = {    /* A: LabelTrees have no state */     {              "open", SubState_N, Punct_ALL,       0,        0, 0, 0, &LabelTree_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {       "label error", SubState_A, Punct_LPAREN, 0, "error", 0,     0, &LabelError_targetObject, SubState_N, 0, 0},     {"SingleLabel option", SubState_A, Punct_WHITE, &getOption, 0,   0, 0, &SingleLabel_targetObject, SubState_N, Command_CHAIN, 0},     {        "ratingword", SubState_A, Punct_LPAREN, 0, "r", "ratings", 0, &SingleLabel_targetObject, SubState_N, Command_CHAIN, 0},     {       "end of tree", SubState_A, Punct_RPAREN,     0,       0, 0, 0, &Label_targetObject, SubState_C, Command_CLOSE|Command_CHAIN, 0}    };PRIVATE TargetObject_t LabelTree_targetObject = {"LabelTree", &LabelTree_open, &LabelTree_close, &LabelTree_destroy, LabelTree_stateTokens, raysize(LabelTree_stateTokens), CSLLTC_LABTREE};PRIVATE StateToken_t SingleLabel_stateTokens[] = {    /* A: fresh SingleLabel       B: needs option value */     {           "open", SubState_N, Punct_ALL, 0,                  0, 0,  0, &SingleLabel_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {"label extension", SubState_A, Punct_LPAREN,     0, "extension", 0,  0,   &Extension_targetObject, SubState_N, 0, 0},     {   "label option", SubState_A,  Punct_WHITE, &getOption,      0, 0,  0, &SingleLabel_targetObject, SubState_B, 0, 0},     {     "ratingword", SubState_A, Punct_LPAREN,     0, "r", "ratings",  0, &LabelRating_targetObject, SubState_N, 0, 0},     {   "option value", SubState_B,  Punct_WHITE, &getOptionValue, 0, 0,  0, &SingleLabel_targetObject, SubState_A, 0, 0}    };PRIVATE TargetObject_t SingleLabel_targetObject = {"SingleLabel", &SingleLabel_open, &SingleLabel_close, &SingleLabel_destroy, SingleLabel_stateTokens, raysize(SingleLabel_stateTokens), CSLLTC_SINGLE};PRIVATE StateToken_t LabelRating_stateTokens[] = {    /* A: looking for transmit name       B: looking for value       C: return from range (either creates a new rating or ends)       D: close and re-open */     {             "open", SubState_N,    Punct_ALL,              0,        0, 0, 0, &LabelRating_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {  "id before value", SubState_A,  Punct_WHITE,    &LabelRating_getId, 0, 0, 0,      &LabelRating_targetObject, SubState_B, 0, 0},     {  "id before range", SubState_A, Punct_LPAREN,    &LabelRating_getId, 0, 0, 0, &LabelRatingRange_targetObject, SubState_N, 0, 0},     {       "value next", SubState_B,  Punct_WHITE, &LabelRating_getValue, 0, 0, 0,      &LabelRating_targetObject, SubState_D, 0, 0}, /* opener must close last rating first */     {      "value close", SubState_B, Punct_RPAREN, &LabelRating_getValue, 0, 0, 0, 0, SubState_X, Command_CLOSE, &LabelRating_next},     {            "close", SubState_C, Punct_RPAREN,                     0, 0, 0, 0, 0, SubState_X, Command_CLOSE, &LabelRating_next},     {"value after range", SubState_C, Punct_WHITE|Punct_LPAREN, &hasToken, 0, 0, 0, &LabelRating_targetObject, SubState_D, Command_CHAIN, 0}, /* opener must close last rating first */     {         "re-enter", SubState_D, Punct_ALL,                 0,        0, 0, 0, &LabelRating_targetObject, SubState_N, Command_MATCHANY|Command_CLOSE|Command_CHAIN, 0}    };PRIVATE TargetObject_t LabelRating_targetObject = {"LabelRating", &LabelRating_open, &LabelRating_close, &LabelRating_destroy, LabelRating_stateTokens, raysize(LabelRating_stateTokens), CSLLTC_RATING};PRIVATE StateToken_t LabelRatingRange_stateTokens[] = {     {       "open", SubState_N,    Punct_ALL,              0,        0, 0, 0, &LabelRatingRange_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     { "range data", SubState_A,  Punct_WHITE, &LabelRatingRange_get, 0, 0, 0, &LabelRatingRange_targetObject, SubState_A, 0, 0},     {"range close", SubState_A, Punct_RPAREN, &LabelRatingRange_get, 0, 0, 0,      &LabelRating_targetObject, SubState_C, Command_CLOSE, 0}    };PRIVATE TargetObject_t LabelRatingRange_targetObject = {"LabelRatingRange", &LabelRatingRange_open, &LabelRatingRange_close, &LabelRatingRange_destroy, LabelRatingRange_stateTokens, raysize(LabelRatingRange_stateTokens), CSLLTC_RANGE};/* Awkward assumes that the current Label has been closed. It decides whether to chain to LabelTree, Label, or ServiceInfo */PRIVATE StateToken_t Awkward_stateTokens[] = {     {           "open", SubState_N,    Punct_ALL, 0,          0,  0, 0, &Awkward_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {     "start tree", SubState_A, Punct_LPAREN,          0, 0,  0, 0,               &LabelTree_targetObject, SubState_N, 0, 0},     {    "label error", SubState_A, Punct_LPAREN, 0,    "error",  0, 0,                 &Awkward_targetObject, SubState_B, 0, 0},     {   "label option", SubState_A,  Punct_WHITE, &getOption, 0,  0, 0,       &Label_targetObject, SubState_N, Command_CHAIN, 0},     {"label extension", SubState_A, Punct_LPAREN, 0, "extension", 0, 0,       &Label_targetObject, SubState_N, Command_CHAIN, 0},     {         "rating", SubState_A, Punct_LPAREN, 0, "r", "ratings", 0,       &Label_targetObject, SubState_N, Command_CHAIN, 0},     { "new service id", SubState_A,  Punct_WHITE,  &isQuoted, 0,  0, 0, &ServiceInfo_targetObject, SubState_E, Command_CHAIN, 0},     {          "close", SubState_A, Punct_RPAREN,          0, 0,  0, 0, &ServiceInfo_targetObject, SubState_D, Command_CHAIN, 0}, /* close of LabelList */     {       "req-denied", SubState_B,  Punct_WHITE, 0, "request-denied", 0, 0, &Label_targetObject, SubState_D, Command_CHAIN, 0},     { "req-denied close", SubState_B, Punct_RPAREN, 0, "request-denied", 0, 0, &Label_targetObject, SubState_D, Command_CHAIN, 0},     {      "not-labeled", SubState_B,  Punct_WHITE, 0,    "not-labeled", 0, 0, &Label_targetObject, SubState_D, Command_CHAIN, 0},     {"not-labeled close", SubState_B, Punct_RPAREN, 0,    "not-labeled", 0, 0, &Label_targetObject, SubState_D, Command_CHAIN, 0},     {       "no-ratings", SubState_B,  Punct_WHITE, 0, "no-ratings", 0, 0, &ServiceInfo_targetObject, SubState_F, Command_CHAIN, 0},     { "no-ratings close", SubState_B, Punct_RPAREN, 0, "no-ratings", 0, 0, &ServiceInfo_targetObject, SubState_F, Command_CHAIN, 0}    };PRIVATE TargetObject_t Awkward_targetObject = {"Awkward", &Awkward_open, &Awkward_close, &Awkward_destroy, Awkward_stateTokens, raysize(Awkward_stateTokens), 0};/* error parsing states */PRIVATE StateToken_t ServiceNoRat_stateTokens[] = {     {             "open", SubState_N,    Punct_ALL,   0,            0, 0, 0, &ServiceNoRat_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {       "no-ratings", SubState_A,  Punct_WHITE,   0, "no-ratings", 0, 0, &ServiceNoRat_targetObject, SubState_B, 0, 0},     { "no-ratings close", SubState_A, Punct_RPAREN,   0, "no-ratings", 0, 0,    &ServiceInfo_targetObject, SubState_D, Command_CLOSE|Command_CHAIN, 0},     {      "explanation", SubState_B,  Punct_WHITE, &error_getExpl, 0, 0, 0, &ServiceNoRat_targetObject, SubState_B, 0, 0},     {"explanation close", SubState_B, Punct_RPAREN, &error_getExpl, 0, 0, 0,    &ServiceInfo_targetObject, SubState_D, Command_CLOSE|Command_CHAIN, 0}    };PRIVATE TargetObject_t ServiceNoRat_targetObject = {"ServiceNoRat", &error_open, &error_close, &error_destroy, ServiceNoRat_stateTokens, raysize(ServiceNoRat_stateTokens), CSLLTC_NORAT};PRIVATE StateToken_t ServiceError_stateTokens[] = {     {                 "open", SubState_N,    Punct_ALL, 0,                    0, 0, 0, &ServiceError_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {           "req-denied", SubState_A,  Punct_WHITE, 0,     "request-denied", 0, 0, &ServiceError_targetObject, SubState_B, 0, 0},     {     "req-denied close", SubState_A, Punct_RPAREN, 0,     "request-denied", 0, 0,    &ServiceInfo_targetObject, SubState_D, Command_CLOSE|Command_CHAIN, 0},     {      "service-unavail", SubState_A,  Punct_WHITE, 0,"service-unavailable", 0, 0, &ServiceError_targetObject, SubState_B, 0, 0},     {"service-unavail close", SubState_A, Punct_RPAREN, 0,"service-unavailable", 0, 0,    &ServiceInfo_targetObject, SubState_D, Command_CLOSE|Command_CHAIN, 0},     {          "explanation", SubState_B,  Punct_WHITE, &error_getExpl,       0, 0, 0, &ServiceError_targetObject, SubState_B, 0, 0},     {    "explanation close", SubState_B, Punct_RPAREN, &error_getExpl,       0, 0, 0,    &ServiceInfo_targetObject, SubState_D, Command_CLOSE|Command_CHAIN, 0}    };PRIVATE TargetObject_t ServiceError_targetObject = {"ServiceError", &error_open, &error_close, &error_destroy, ServiceError_stateTokens, raysize(ServiceError_stateTokens), CSLLTC_SRVERR};PRIVATE StateToken_t LabelError_stateTokens[] = {     {             "open", SubState_N,    Punct_ALL, 0,                0, 0, 0, &LabelError_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},     {       "req-denied", SubState_A,  Punct_WHITE, 0, "request-denied", 0, 0, &LabelError_targetObject, SubState_B, 0, 0},     { "req-denied close", SubState_A, Punct_RPAREN, 0, "request-denied", 0, 0,    &Label_targetObject, SubState_C, Command_CLOSE|Command_CHAIN, 0},     {      "not-labeled", SubState_A,  Punct_WHITE, 0,    "not-labeled", 0, 0, &LabelError_targetObject, SubState_B, 0, 0},     {"not-labeled close", SubState_A, Punct_RPAREN, 0,    "not-labeled", 0, 0,    &Label_targetObject, SubState_C, Command_CLOSE|Command_CHAIN, 0},     {      "explanation", SubState_B,  Punct_WHITE, &error_getExpl,   0, 0, 0, &LabelError_targetObject, SubState_B, 0, 0},     {"explanation close", SubState_B, Punct_RPAREN, &error_getExpl,   0, 0, 0,    &Label_targetObject, SubState_C, Command_CLOSE|Command_CHAIN, 0}    };PRIVATE TargetObject_t LabelError_targetObject = {"LabelError", &error_open, &error_close, &error_destroy, LabelError_stateTokens, raysize(LabelError_stateTokens), CSLLTC_LABERR};PRIVATE StateToken_t Extension_stateTokens[] = {    /* A: looking for mand/opt       B: looking for URL       C: back from ExtensionData */     {      "open", SubState_N,    Punct_ALL,        0,           0, 0, 0, &Extension_targetObject, SubState_A, Command_MATCHANY|Command_OPEN|Command_CHAIN, 0},	 { "mandatory", SubState_A,  Punct_WHITE,        0, "mandatory", 0, 0, &Extension_targetObject, SubState_B, 0, &Extension_mandatory},     {  "optional", SubState_A,  Punct_WHITE,        0,  "optional", 0, 0, &Extension_targetObject, SubState_B, 0, 0},     {       "URL", SubState_B,  Punct_WHITE,  &Extension_getURL, 0, 0, 0, &ExtensionData_targetObject, SubState_N, 0, 0},

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久人人超碰| 欧美久久一二三四区| 亚洲一二三四区| 日韩精品最新网址| 99国产精品久| 精品一区二区免费在线观看| 亚洲免费大片在线观看| 精品国产一区久久| 欧美在线看片a免费观看| 国产精品一区二区免费不卡| 亚洲午夜视频在线观看| 国产嫩草影院久久久久| 在线不卡中文字幕| 精品乱人伦一区二区三区| 欧美性大战久久久久久久| 成人av资源在线| 国产在线一区观看| 免费观看30秒视频久久| 亚洲精品自拍动漫在线| 国产丝袜欧美中文另类| 欧美电影免费观看高清完整版 | 1024亚洲合集| 精品美女被调教视频大全网站| 在线观看国产91| 成人激情黄色小说| 国产永久精品大片wwwapp | 婷婷六月综合网| 亚洲丝袜美腿综合| 亚洲国产成人自拍| 精品国产a毛片| 日韩欧美中文字幕精品| 欧美日韩成人综合天天影院| 色天使久久综合网天天| 99久久国产综合精品色伊| 国产美女在线精品| 久久不见久久见中文字幕免费| 天天色综合成人网| 亚洲高清中文字幕| 亚洲v中文字幕| 天堂成人国产精品一区| 五月激情六月综合| 天堂一区二区在线免费观看| 夜夜精品视频一区二区| 亚洲与欧洲av电影| 亚洲一区av在线| 亚洲一二三专区| 亚洲成av人片www| 日产精品久久久久久久性色| 偷窥少妇高潮呻吟av久久免费| 午夜视频在线观看一区二区| 图片区小说区区亚洲影院| 五月天精品一区二区三区| 五月婷婷激情综合| 久久精品国产亚洲高清剧情介绍 | 偷拍日韩校园综合在线| 国产精品久久久久久久久免费桃花| 欧美大度的电影原声| 欧美情侣在线播放| 3d动漫精品啪啪一区二区竹菊 | 免费看欧美女人艹b| 亚洲精品国产高清久久伦理二区| 欧美国产日韩一二三区| 久久久99久久精品欧美| 精品精品欲导航| 欧美草草影院在线视频| 日韩欧美一级在线播放| 日韩欧美国产三级| 欧美精品一区二区三区四区| 日韩免费观看高清完整版在线观看| 91精品国产综合久久国产大片| 精品视频1区2区3区| 欧美日韩在线一区二区| 欧美日韩在线播放| 色婷婷精品久久二区二区蜜臂av| 欧美亚日韩国产aⅴ精品中极品| 欧美在线综合视频| 欧美日韩国产色站一区二区三区| 欧美日韩精品电影| 91精品国产乱码久久蜜臀| 日韩一级二级三级精品视频| 日韩欧美另类在线| 国产日本欧洲亚洲| 国产精品对白交换视频| 亚洲四区在线观看| 亚洲v中文字幕| 亚洲国产另类精品专区| 日韩电影免费一区| 国产一区二区电影| av不卡免费在线观看| 色婷婷久久99综合精品jk白丝| 亚洲精品国产一区二区三区四区在线 | 久久国产精品99精品国产| 极品销魂美女一区二区三区| 国内精品久久久久影院薰衣草| 成人国产一区二区三区精品| 欧美色视频在线| 91精品国产一区二区| 久久免费视频色| 成人免费在线播放视频| 国产精品久久777777| 亚洲一区二区三区视频在线 | 国产美女久久久久| 91美女福利视频| 91精品久久久久久久99蜜桃| 2021久久国产精品不只是精品| 成人免费在线视频观看| 奇米综合一区二区三区精品视频| 国产一区不卡精品| 精品视频999| 国产欧美精品一区二区三区四区| 国产精品电影院| 亚洲电影一区二区| 懂色av一区二区三区蜜臀| 91成人在线精品| 久久久另类综合| 亚洲一区在线观看网站| 国产成人午夜99999| 欧美三级电影网| 日本一区二区三区dvd视频在线| 亚洲成人自拍偷拍| 国产精品亚洲人在线观看| 欧美色网一区二区| 中文字幕精品一区二区三区精品| 欧美无乱码久久久免费午夜一区 | 久久婷婷色综合| 亚洲大尺度视频在线观看| 成人永久看片免费视频天堂| 欧美日韩极品在线观看一区| 1024亚洲合集| 国产成人综合网| 91精品婷婷国产综合久久竹菊| 中文字幕一区不卡| 日韩精品成人一区二区三区| 99视频精品在线| 久久精品人人做人人爽97| 免费精品视频在线| 在线观看一区日韩| 亚洲天堂成人网| 国产成人av福利| 精品国产三级电影在线观看| 舔着乳尖日韩一区| 欧美偷拍一区二区| 亚洲免费电影在线| caoporm超碰国产精品| 欧美一级黄色片| 亚洲精品国产无天堂网2021| 成人av在线播放网站| 日韩欧美一二三| 丝袜亚洲精品中文字幕一区| 欧洲亚洲精品在线| 国产女同互慰高潮91漫画| 成人激情动漫在线观看| 国产日产欧美一区二区三区| 欧美a一区二区| 欧美一区二区三区性视频| 亚洲电影视频在线| 欧美日本在线播放| 亚洲一区二区视频在线观看| 99在线精品视频| 中文字幕欧美日韩一区| 成人午夜私人影院| 国产精品理论在线观看| av在线不卡电影| 亚洲欧洲日韩综合一区二区| 成人午夜免费视频| 一区二区中文视频| 一道本成人在线| 亚洲成av人影院| 欧美一区二区三区不卡| 老司机午夜精品99久久| 26uuu亚洲综合色欧美| 国产成人在线视频免费播放| 欧美国产精品专区| 91啦中文在线观看| 亚洲国产一区二区视频| 欧美日韩国产一区| 麻豆国产精品官网| 久久久久久久久久久久久女国产乱| 91免费在线视频观看| 夜色激情一区二区| 欧美一三区三区四区免费在线看| 秋霞影院一区二区| 2021中文字幕一区亚洲| jlzzjlzz亚洲女人18| 亚洲一区二区三区小说| 欧美视频一区二区三区| 久久久久久黄色| 91在线码无精品| 亚洲成人黄色影院| 久久综合精品国产一区二区三区| 国产大陆精品国产| 一区二区三区久久| 宅男噜噜噜66一区二区66| 国内成人自拍视频| 亚洲素人一区二区| 91.xcao| 成人高清伦理免费影院在线观看| 亚洲一区二区三区免费视频| 欧美一卡二卡在线| 成人avav影音|