1bbc76549SMasatake YAMATO /* 2bbc76549SMasatake YAMATO * Copyright (c) 2019, Red Hat, Inc. 3bbc76549SMasatake YAMATO * Copyright (c) 2019, Masatake YAMATO 4bbc76549SMasatake YAMATO * 5bbc76549SMasatake YAMATO * This source code is released for free distribution under the terms of the 6bbc76549SMasatake YAMATO * GNU General Public License version 2 or (at your option) any later version. 7bbc76549SMasatake YAMATO */ 8bbc76549SMasatake YAMATO 9bbc76549SMasatake YAMATO #ifndef CTAGS_PARSER_XML_H 10bbc76549SMasatake YAMATO #define CTAGS_PARSER_XML_H 11bbc76549SMasatake YAMATO 12bbc76549SMasatake YAMATO /* 13bbc76549SMasatake YAMATO * INCLUDE FILES 14bbc76549SMasatake YAMATO */ 15bbc76549SMasatake YAMATO #include "general.h" /* must always come first */ 16bbc76549SMasatake YAMATO #include "subparser.h" 17bbc76549SMasatake YAMATO 18bbc76549SMasatake YAMATO /* 19bbc76549SMasatake YAMATO * DATA DECLARATIONS 20bbc76549SMasatake YAMATO */ 21bbc76549SMasatake YAMATO 22bbc76549SMasatake YAMATO typedef struct sXmlSubparser xmlSubparser; 23bbc76549SMasatake YAMATO struct sXmlSubparser { 24bbc76549SMasatake YAMATO subparser subparser; 25bbc76549SMasatake YAMATO 26bbc76549SMasatake YAMATO /* Similar to makeTagEntryNotify method of subparser. 27bbc76549SMasatake YAMATO * However, makeTagEntryWithNodeNotify passes the xml node 28bbc76549SMasatake YAMATO * just found to subparsers. 29bbc76549SMasatake YAMATO */ 30bbc76549SMasatake YAMATO void (* makeTagEntryWithNodeNotify) (xmlSubparser *s, 31bbc76549SMasatake YAMATO xmlNode *node, tagEntryInfo *xmlTag); 32*f511f9ebSMasatake YAMATO 33*f511f9ebSMasatake YAMATO /* A subparser should call findXMLTags() in the callback function 34*f511f9ebSMasatake YAMATO * assigned to this field. The XML base parser prepares CTX and ROOT. 35*f511f9ebSMasatake YAMATO * A subparser may pass the CTX and ROOT to findXMLTags(). 36*f511f9ebSMasatake YAMATO * The XML base parser tags id= and namespace related attributes before 37*f511f9ebSMasatake YAMATO * calling this hook. CTX and ROOT are already used once by 38*f511f9ebSMasatake YAMATO * the XML base parser for tagging id= and namespace related attributes. 39*f511f9ebSMasatake YAMATO * The resource life cycle of CTX and ROOT is managed by the base parser. 40*f511f9ebSMasatake YAMATO */ 41*f511f9ebSMasatake YAMATO void (* runXPathEngine) (xmlSubparser *s, 42*f511f9ebSMasatake YAMATO xmlXPathContext *ctx, xmlNode *root); 43bbc76549SMasatake YAMATO }; 44bbc76549SMasatake YAMATO 45bbc76549SMasatake YAMATO #endif /* CTAGS_PARSER_XML_H */ 46