geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

subparser.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (c) 2017, Red Hat, Inc.
4 * Copyright (c) 2017, 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_SUBPARSER_H
13#define CTAGS_MAIN_SUBPARSER_H
14
15#include "general.h"
16
17#include "dependency.h"
18#include "types.h"
19
20/*
21* MACROS
22*/
23#define foreachSubparser(VAR, INCLUDING_NONE_CRAFTED_PARSER)\
24 VAR = NULL; \
25 while ((VAR = getNextSubparser (VAR, INCLUDING_NONE_CRAFTED_PARSER)) != NULL)
26
27/*
28* DATA DECLARATIONS
29*/
36
37struct sSubparser {
38 /* private in the main part */
43
44 /* public to the parser */
46
47 void (* inputStart) (subparser *s);
48 void (* inputEnd) (subparser *s);
49 void (* exclusiveSubparserChosenNotify) (subparser *s, void *data);
50 void (* makeTagEntryNotify) (subparser *s, const tagEntryInfo *tag, int corkIndex);
51};
52
53/*
54* FUNCTION PROTOTYPES
55*/
56
57/* Interface for Baseparser */
58extern subparser *getNextSubparser(subparser *last, bool includingNoneCraftedParser);
60extern void leaveSubparser(void);
62extern void chooseExclusiveSubparser (subparser *s, void *data);
63
64/* Interface for Subparsers */
65#define RUN_DEFAULT_SUBPARSERS -1
66extern void scheduleRunningBaseparser (int dependencyIndex);
67
68#endif /* CTAGS_MAIN_SUBPARSER_H */
void(* makeTagEntryNotify)(subparser *s, const tagEntryInfo *tag, int corkIndex)
Definition: subparser.h:50
void(* inputStart)(subparser *s)
Definition: subparser.h:47
subparserRunDirection direction
Definition: subparser.h:45
slaveParser * slaveParser
Definition: subparser.h:39
bool chosenAsExclusiveSubparser
Definition: subparser.h:42
void(* exclusiveSubparserChosenNotify)(subparser *s, void *data)
Definition: subparser.h:49
bool schedulingBaseparserExplicitly
Definition: subparser.h:41
void(* inputEnd)(subparser *s)
Definition: subparser.h:48
subparser * next
Definition: subparser.h:40
enum eSubparserRunDirection subparserRunDirection
void enterSubparser(subparser *subparser)
Definition: dependency.c:269
subparser * getSubparserRunningBaseparser(void)
Definition: parse.c:4860
eSubparserRunDirection
Definition: subparser.h:30
@ SUBPARSER_BASE_RUNS_SUB
Definition: subparser.h:32
@ SUBPARSER_UNKNOWN_DIRECTION
Definition: subparser.h:31
@ SUBPARSER_SUB_RUNS_BASE
Definition: subparser.h:33
@ SUBPARSER_BI_DIRECTION
Definition: subparser.h:34
subparser * getNextSubparser(subparser *last, bool includingNoneCraftedParser)
Definition: parse.c:4756
void leaveSubparser(void)
Definition: dependency.c:275
void scheduleRunningBaseparser(int dependencyIndex)
Definition: parse.c:4795
void chooseExclusiveSubparser(subparser *s, void *data)
Definition: dependency.c:200