xref: /Universal-ctags/parsers/perl.h (revision 08bf1b999d211d0a18de5b4e5f65ad0f8dbf1c51)
1cd677fe6SMasatake YAMATO /*
2cd677fe6SMasatake YAMATO *   Copyright (c) 2019, Masatake YAMATO
3cd677fe6SMasatake YAMATO *
4cd677fe6SMasatake YAMATO *   This source code is released for free distribution under the terms of the
5cd677fe6SMasatake YAMATO *   GNU General Public License version 2 or (at your option) any later version.
6cd677fe6SMasatake YAMATO */
7cd677fe6SMasatake YAMATO #ifndef CTAGS_PARSER_PERL_H
8cd677fe6SMasatake YAMATO #define CTAGS_PARSER_PERL_H
9cd677fe6SMasatake YAMATO 
10cd677fe6SMasatake YAMATO /*
11cd677fe6SMasatake YAMATO *   INCLUDE FILES
12cd677fe6SMasatake YAMATO */
13cd677fe6SMasatake YAMATO #include "general.h"  /* must always come first */
14cd677fe6SMasatake YAMATO 
15cd677fe6SMasatake YAMATO #include "subparser.h"
16cd677fe6SMasatake YAMATO 
17cd677fe6SMasatake YAMATO typedef struct sPerlSubparser perlSubparser;
18cd677fe6SMasatake YAMATO 
19b02a66cdSMasatake YAMATO enum PerlModuleRoleType {
20b02a66cdSMasatake YAMATO 	ROLE_PERL_MODULE_USED,
2150c83de6SMasatake YAMATO 	ROLE_PERL_MODULE_UNUSED,
22b02a66cdSMasatake YAMATO };
23b02a66cdSMasatake YAMATO 
24cd677fe6SMasatake YAMATO enum PerlKindType {
25cd677fe6SMasatake YAMATO 	KIND_PERL_NONE = -1,
26cd677fe6SMasatake YAMATO 	KIND_PERL_CONSTANT,
27cd677fe6SMasatake YAMATO 	KIND_PERL_FORMAT,
28cd677fe6SMasatake YAMATO 	KIND_PERL_LABEL,
29cd677fe6SMasatake YAMATO 	KIND_PERL_PACKAGE,
30cd677fe6SMasatake YAMATO 	KIND_PERL_SUBROUTINE,
31b02a66cdSMasatake YAMATO 	KIND_PERL_SUBROUTINE_DECLARATION,
32b02a66cdSMasatake YAMATO 	KIND_PERL_MODULE,
33*08bf1b99SMasatake YAMATO 	KIND_PERL_HEREDOCMARKER,
34cd677fe6SMasatake YAMATO };
35cd677fe6SMasatake YAMATO 
36cd677fe6SMasatake YAMATO struct sPerlSubparser {
37cd677fe6SMasatake YAMATO 	subparser subparser;
385be4c343SMasatake YAMATO 	void (* findingQuotedWordNotify) (perlSubparser *,
395be4c343SMasatake YAMATO 									  int moduleIndex,
405be4c343SMasatake YAMATO 									  const char *qwd);
41cd677fe6SMasatake YAMATO 	void (* enteringPodNotify) (perlSubparser *);
42cd677fe6SMasatake YAMATO 	void (* leavingPodNotify)    (perlSubparser *);
43cd677fe6SMasatake YAMATO };
44cd677fe6SMasatake YAMATO 
45cd677fe6SMasatake YAMATO #endif	/* CTAGS_PARSER_PERL_H */
46