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

📄 xmlrole.c

📁 GNU/Linux程序开发指南书的所有例子源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
int notation2(PROLOG_STATE *state,	      int tok,	      const char *ptr,	      const char *end,	      const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_LITERAL:    state->handler = notation4;    return XML_ROLE_NOTATION_PUBLIC_ID;  }  return syntaxError(state);}staticint notation3(PROLOG_STATE *state,	      int tok,	      const char *ptr,	      const char *end,	      const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_LITERAL:    state->handler = declClose;    return XML_ROLE_NOTATION_SYSTEM_ID;  }  return syntaxError(state);}staticint notation4(PROLOG_STATE *state,	      int tok,	      const char *ptr,	      const char *end,	      const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_LITERAL:    state->handler = declClose;    return XML_ROLE_NOTATION_SYSTEM_ID;  case XML_TOK_DECL_CLOSE:    state->handler = internalSubset;    return XML_ROLE_NOTATION_NO_SYSTEM_ID;  }  return syntaxError(state);}staticint attlist0(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    state->handler = attlist1;    return XML_ROLE_ATTLIST_ELEMENT_NAME;  }  return syntaxError(state);}staticint attlist1(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_DECL_CLOSE:    state->handler = internalSubset;    return XML_ROLE_NONE;  case XML_TOK_NAME:    state->handler = attlist2;    return XML_ROLE_ATTRIBUTE_NAME;  }  return syntaxError(state);}staticint attlist2(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    {      static const char *types[] = {	"CDATA",        "ID",        "IDREF",        "IDREFS",        "ENTITY",        "ENTITIES",        "NMTOKEN",        "NMTOKENS",      };      int i;      for (i = 0; i < (int)(sizeof(types)/sizeof(types[0])); i++)	if (XmlNameMatchesAscii(enc, ptr, types[i])) {	  state->handler = attlist8;	  return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i;	}    }    if (XmlNameMatchesAscii(enc, ptr, "NOTATION")) {      state->handler = attlist5;      return XML_ROLE_NONE;    }    break;  case XML_TOK_OPEN_PAREN:    state->handler = attlist3;    return XML_ROLE_NONE;  }  return syntaxError(state);}staticint attlist3(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NMTOKEN:  case XML_TOK_NAME:    state->handler = attlist4;    return XML_ROLE_ATTRIBUTE_ENUM_VALUE;  }  return syntaxError(state);}staticint attlist4(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_CLOSE_PAREN:    state->handler = attlist8;    return XML_ROLE_NONE;  case XML_TOK_OR:    state->handler = attlist3;    return XML_ROLE_NONE;  }  return syntaxError(state);}staticint attlist5(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_OPEN_PAREN:    state->handler = attlist6;    return XML_ROLE_NONE;  }  return syntaxError(state);}staticint attlist6(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    state->handler = attlist7;    return XML_ROLE_ATTRIBUTE_NOTATION_VALUE;  }  return syntaxError(state);}staticint attlist7(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_CLOSE_PAREN:    state->handler = attlist8;    return XML_ROLE_NONE;  case XML_TOK_OR:    state->handler = attlist6;    return XML_ROLE_NONE;  }  return syntaxError(state);}/* default value */staticint attlist8(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_POUND_NAME:    if (XmlNameMatchesAscii(enc,			    ptr + MIN_BYTES_PER_CHAR(enc),			    "IMPLIED")) {      state->handler = attlist1;      return XML_ROLE_IMPLIED_ATTRIBUTE_VALUE;    }    if (XmlNameMatchesAscii(enc,			    ptr + MIN_BYTES_PER_CHAR(enc),			    "REQUIRED")) {      state->handler = attlist1;      return XML_ROLE_REQUIRED_ATTRIBUTE_VALUE;    }    if (XmlNameMatchesAscii(enc,			    ptr + MIN_BYTES_PER_CHAR(enc),			    "FIXED")) {      state->handler = attlist9;      return XML_ROLE_NONE;    }    break;  case XML_TOK_LITERAL:    state->handler = attlist1;    return XML_ROLE_DEFAULT_ATTRIBUTE_VALUE;  }  return syntaxError(state);}staticint attlist9(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_LITERAL:    state->handler = attlist1;    return XML_ROLE_FIXED_ATTRIBUTE_VALUE;  }  return syntaxError(state);}staticint element0(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    state->handler = element1;    return XML_ROLE_ELEMENT_NAME;  }  return syntaxError(state);}staticint element1(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    if (XmlNameMatchesAscii(enc, ptr, "EMPTY")) {      state->handler = declClose;      return XML_ROLE_CONTENT_EMPTY;    }    if (XmlNameMatchesAscii(enc, ptr, "ANY")) {      state->handler = declClose;      return XML_ROLE_CONTENT_ANY;    }    break;  case XML_TOK_OPEN_PAREN:    state->handler = element2;    state->level = 1;    return XML_ROLE_GROUP_OPEN;  }  return syntaxError(state);}staticint element2(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_POUND_NAME:    if (XmlNameMatchesAscii(enc,			    ptr + MIN_BYTES_PER_CHAR(enc),			    "PCDATA")) {      state->handler = element3;      return XML_ROLE_CONTENT_PCDATA;    }    break;  case XML_TOK_OPEN_PAREN:    state->level = 2;    state->handler = element6;    return XML_ROLE_GROUP_OPEN;  case XML_TOK_NAME:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT;  case XML_TOK_NAME_QUESTION:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_OPT;  case XML_TOK_NAME_ASTERISK:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_REP;  case XML_TOK_NAME_PLUS:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_PLUS;  }  return syntaxError(state);}staticint element3(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_CLOSE_PAREN:  case XML_TOK_CLOSE_PAREN_ASTERISK:    state->handler = declClose;    return XML_ROLE_GROUP_CLOSE_REP;  case XML_TOK_OR:    state->handler = element4;    return XML_ROLE_NONE;  }  return syntaxError(state);}staticint element4(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_NAME:    state->handler = element5;    return XML_ROLE_CONTENT_ELEMENT;  }  return syntaxError(state);}staticint element5(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_CLOSE_PAREN_ASTERISK:    state->handler = declClose;    return XML_ROLE_GROUP_CLOSE_REP;  case XML_TOK_OR:    state->handler = element4;    return XML_ROLE_NONE;  }  return syntaxError(state);}staticint element6(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_OPEN_PAREN:    state->level += 1;    return XML_ROLE_GROUP_OPEN;  case XML_TOK_NAME:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT;  case XML_TOK_NAME_QUESTION:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_OPT;  case XML_TOK_NAME_ASTERISK:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_REP;  case XML_TOK_NAME_PLUS:    state->handler = element7;    return XML_ROLE_CONTENT_ELEMENT_PLUS;  }  return syntaxError(state);}staticint element7(PROLOG_STATE *state,	     int tok,	     const char *ptr,	     const char *end,	     const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_CLOSE_PAREN:    state->level -= 1;    if (state->level == 0)      state->handler = declClose;    return XML_ROLE_GROUP_CLOSE;  case XML_TOK_CLOSE_PAREN_ASTERISK:    state->level -= 1;    if (state->level == 0)      state->handler = declClose;    return XML_ROLE_GROUP_CLOSE_REP;  case XML_TOK_CLOSE_PAREN_QUESTION:    state->level -= 1;    if (state->level == 0)      state->handler = declClose;    return XML_ROLE_GROUP_CLOSE_OPT;  case XML_TOK_CLOSE_PAREN_PLUS:    state->level -= 1;    if (state->level == 0)      state->handler = declClose;    return XML_ROLE_GROUP_CLOSE_PLUS;  case XML_TOK_COMMA:    state->handler = element6;    return XML_ROLE_GROUP_SEQUENCE;  case XML_TOK_OR:    state->handler = element6;    return XML_ROLE_GROUP_CHOICE;  }  return syntaxError(state);}staticint declClose(PROLOG_STATE *state,	      int tok,	      const char *ptr,	      const char *end,	      const ENCODING *enc){  switch (tok) {  case XML_TOK_PROLOG_S:    return XML_ROLE_NONE;  case XML_TOK_DECL_CLOSE:    state->handler = internalSubset;    return XML_ROLE_NONE;  }  return syntaxError(state);}#if 0staticint ignore(PROLOG_STATE *state,	   int tok,	   const char *ptr,	   const char *end,	   const ENCODING *enc){  switch (tok) {  case XML_TOK_DECL_CLOSE:    state->handler = internalSubset;    return 0;  default:    return XML_ROLE_NONE;  }  return syntaxError(state);}#endifstaticint error(PROLOG_STATE *state,	   int tok,	   const char *ptr,	   const char *end,	   const ENCODING *enc){  return XML_ROLE_NONE;}staticint syntaxError(PROLOG_STATE *state){  state->handler = error;  return XML_ROLE_ERROR;}void XmlPrologStateInit(PROLOG_STATE *state){  state->handler = prolog0;}

⌨️ 快捷键说明

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