Mercurial > ~dholland > hg > ag > index.cgi
view tests/agcl/parsifal/good/xmlp8.h @ 10:5b21f127e957
silence random gcc warning
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:58:14 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
#ifndef XMLP8_H #define XMLP8_H #ifndef AG_OBJECT_WRAPPER_DEFINED #define AG_OBJECT_WRAPPER_DEFINED #ifndef AG_PLACEMENT_DELETE_REQUIRED #if _MSC_VER >= 1200 || __INTEL_COMPILER #define AG_PLACEMENT_DELETE_REQUIRED 1 #endif #endif template <class Object> class AgObjectWrapper { Object object; public: void operator delete(void *) {} void *operator new(size_t, void *p) { return p;} #if AG_PLACEMENT_DELETE_REQUIRED void operator delete(void *, void *) { } #endif AgObjectWrapper(const Object &o) : object(o) {} ~AgObjectWrapper() {} operator Object &() {return object;} }; #endif typedef union { long alignment; char ag_vt_2[sizeof(int)]; char ag_vt_4[sizeof(AgObjectWrapper<AttvalPair >)]; char ag_vt_5[sizeof(AgObjectWrapper<AgString >)]; char ag_vt_6[sizeof(AgObjectWrapper<AttvalList >)]; char ag_vt_7[sizeof(AgObjectWrapper<Attribute >)]; char ag_vt_8[sizeof(AgObjectWrapper<AttributeList >)]; char ag_vt_9[sizeof(AgObjectWrapper<Default >)]; char ag_vt_10[sizeof(Attribute::Type)]; } parse_vs_type; typedef enum { parse_document_token = 4, parse_prolog_token, parse_element_token, parse_Misc_token, parse_eof_token = 10, parse_S_token, parse_SpaceChar_token, parse_Name_token = 14, parse_NameChar_token = 16, parse_Names_token, parse_Nmtoken_token, parse_Nmtokens_token = 20, parse_EntityValue_token = 24, parse_PEReference_token = 27, parse_Reference_token, parse_AttValue_token = 37, parse_dq_AttValString_token, parse_sq_AttValString_token, parse_CharRef_token = 41, parse_EntityRef_token, parse_SystemLiteral_token = 44, parse_PubidLiteral_token = 51, parse_PubidChar_token, parse_Comment_token = 58, parse_comment_text_token = 60, parse_Char_token = 62, parse_PI_token, parse_PITarget_token = 65, parse_CDSect_token = 71, parse_CDStart_token, parse_CData_token, parse_CDEnd_token, parse_XMLDecl_token = 80, parse_doctypedecl_token = 82, parse_VersionInfo_token = 85, parse_VersionDecl_token, parse_EncodingDecl_token = 88, parse_SDDecl_token, parse_Eq_token = 91, parse_VersionNum_token, parse_ExternalID_token = 98, parse_markupdecl_token = 102, parse_elementdecl_token = 108, parse_AttlistDecl_token, parse_EntityDecl_token, parse_NotationDecl_token, parse_extSubset_token, parse_TextDecl_token, parse_extSubsetDecl_token = 115, parse_conditionalSect_token, parse_LanguageId_token = 125, parse_Langcode_token, parse_Subcode_token = 128, parse_ISO639Code_token = 132, parse_IanaCode_token, parse_UserCode_token, parse_EmptyElementTag_token = 140, parse_STag_token, parse_content_token, parse_ETag_token, parse_AttributeList_token = 145, parse_Attribute_token, parse_content_unit_token = 148, parse_contentspec_token = 153, parse_Mixed_token = 156, parse_Children_token, parse_choice_token, parse_seq_token, parse_cp_token = 165, parse_AttDefs_token = 182, parse_AttDef_token, parse_AttType_token, parse_DefaultDecl_token, parse_StringType_token, parse_TokenizedType_token, parse_EnumeratedType_token, parse_NotationType_token = 197, parse_Enumeration_token, parse_includeSect_token = 209, parse_ignoreSect_token, parse_ignoreSectContents_token = 214, parse_Ignore_token = 217, parse_decimal_CharRef_token = 221, parse_hex_CharRef_token = 223, parse_GEDecl_token = 230, parse_PEDecl_token, parse_EntityDef_token = 233, parse_PEDef_token, parse_NDataDecl_token, parse_extParsedEnt_token = 241, parse_extPE_token, parse_EncName_token = 244, parse_PublicID_token = 251, parse__last_token = 264 } parse_token_type; typedef struct parse_pcb_struct{ parse_token_type token_number, reduction_token, error_frame_token; int input_code; int input_value; int line, column; int ssx, sn, error_frame_ssx; int drt, dssx, dsn; int ss[128]; parse_vs_type vs[128]; int ag_ap; const char *error_message; char read_flag; char exit_flag; Context input_context; Context cs[128]; int bts[128], btsx; int lab[11], rx, fx; const unsigned char *key_sp; int save_index, key_state; char ag_msg[82]; /* Line -, xmlp8.syn */ AgStack<AgString> tagStack; AgStack<Symtab> mapStack; AgString textStack; AgString spaceStack; enum TokenType { none, spaceType, textType, commentType, startType, endType, emptyType, entityRefType, //charRefType, errorType } tokenType; AgString currentTagName; AgString currentEntityName; //int currentCharRef; AgString commentString; Symtab currentMap; AgStack<Warning> warningList; AgBaseMapString<Element> elementMap; int dtdPresent; parse_pcb_struct(); parse(char *input, AgString *); void spaceChar(int); void textChar(int); void startTag(const Context &, const AgString &, AttvalList &); void emptyTag(const Context &, const AgString &, AttvalList &); void endTag(const AgString &); void registerAttributes(const AgString &name, const AgBaseStack<Attribute> &AttributeList); void checkAttributes(const Context &, const AgString &name, Symtab &map); int warnAttval(const Context &context, const char *, const AttvalPair &p); static void normalize(AgString &s); } parse_pcb_type; #ifndef PRULE_CONTEXT #define PRULE_CONTEXT(pcb) (&((pcb).cs[(pcb).ssx])) #define PERROR_CONTEXT(pcb) ((pcb).cs[(pcb).error_frame_ssx]) #define PCONTEXT(pcb) ((pcb).cs[(pcb).ssx]) #endif #ifndef AG_RUNNING_CODE /* PCB.exit_flag values */ #define AG_RUNNING_CODE 0 #define AG_SUCCESS_CODE 1 #define AG_SYNTAX_ERROR_CODE 2 #define AG_REDUCTION_ERROR_CODE 3 #define AG_STACK_ERROR_CODE 4 #define AG_SEMANTIC_ERROR_CODE 5 #endif void init_parse(parse_pcb_type *); void parse(parse_pcb_type *); #endif