1 /* 2 * 3 * Copyright (c) 2016, Red Hat, Inc. 4 * Copyright (c) 2016, Masatake YAMATO 5 * 6 * Author: Masatake YAMATO <yamato@redhat.com> 7 * 8 * This source code is released for free distribution under the terms of the 9 * GNU General Public License version 2 or (at your option) any later version. 10 * 11 */ 12 #ifndef CTAGS_MAIN_DEPENDENCY_PRIVATE_H 13 #define CTAGS_MAIN_DEPENDENCY_PRIVATE_H 14 15 /* 16 * INCLUDE FILES 17 */ 18 #include "general.h" /* must always come first */ 19 20 #include "dependency.h" 21 #include "kind.h" 22 #include "types.h" 23 24 /* 25 * MACROS 26 */ 27 #define foreachSlaveParser(VAR) \ 28 VAR = NULL; \ 29 while ((VAR = getNextSlaveParser (VAR)) != NULL) 30 31 32 /* 33 * DATA DECLARATIONS 34 */ 35 struct slaveControlBlock; /* Opaque data type for parse.c */ 36 37 /* 38 * FUNCTION PROTOTYPES 39 */ 40 extern void linkDependencyAtInitializeParsing (depType dtype, 41 parserDefinition *const master, 42 struct slaveControlBlock *masterSCB, 43 struct kindControlBlock *masterKCB, 44 parserDefinition *const slave, 45 struct kindControlBlock *slaveKCB, 46 void *data); 47 48 extern struct slaveControlBlock *allocSlaveControlBlock (parserDefinition *parser); 49 extern void freeSlaveControlBlock (struct slaveControlBlock *cb); 50 extern void initializeDependencies (parserDefinition *parser, 51 struct slaveControlBlock *cb); 52 extern void finalizeDependencies (parserDefinition *parser, 53 struct slaveControlBlock *cb); 54 55 extern slaveParser *getFirstSlaveParser(struct slaveControlBlock *controlBlock); 56 extern slaveParser *getNextSlaveParser(slaveParser *last); 57 58 #endif /* CTAGS_MAIN_DEPENDENCY_PRIVATE_H */ 59