From 92e2a783795b2c893185a309dd7675d40d970850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Techet?= Date: Thu, 30 Dec 2021 17:19:27 +0100 Subject: [PATCH] Use C parser for GLSL files and CUDA parser for CUDA files The GLSL portion of c.c doesn't seem to do anything - it's just a synonym for a C parser which can be used directly instead. This way we can switch to the new cxx parser for GLSL too and reduce one more language to care about in c.c. For reference, the GLSL "parser" was introduced in commit 6ce421f1411060b8576bdac982cca11229b8ef96 Since we need to keep original identifiers for parsers and need some parser instead of the removed GLSL parser, we can replace it with the CUDA parser that is part of the new cxx parser and we can use this parser for parsing CUDA files instead of C++ (the CUDA parser is basically just C++ parsers with different keywords). --- ctags/parsers/geany_c.c | 19 ------------------- data/filedefs/filetypes.CUDA.conf | 2 +- src/filetypes.c | 2 +- src/tagmanager/tm_parser.c | 8 ++++---- src/tagmanager/tm_parser.h | 2 +- src/tagmanager/tm_parsers.h | 2 +- 6 files changed, 8 insertions(+), 27 deletions(-) diff --git a/ctags/parsers/geany_c.c b/ctags/parsers/geany_c.c index 3ba24bfa80..d9ad0b0c91 100644 --- a/ctags/parsers/geany_c.c +++ b/ctags/parsers/geany_c.c @@ -267,7 +267,6 @@ static langType Lang_cpp; static langType Lang_csharp; static langType Lang_java; static langType Lang_d; -static langType Lang_glsl; static langType Lang_vala; /* Used to index into the CKinds table. */ @@ -3197,12 +3196,6 @@ static void initializeDParser (const langType language) addKeyword ("version", language, KEYWORD_NAMESPACE); /* parse block */ } -static void initializeGLSLParser (const langType language) -{ - Lang_glsl = language; - buildKeywordHash (language, 0); /* C keywords */ -} - static void initializeCsharpParser (const langType language) { Lang_csharp = language; @@ -3275,18 +3268,6 @@ extern parserDefinition* DParser (void) return def; } -extern parserDefinition* GLSLParser (void) -{ - static const char *const extensions [] = { "glsl", "frag", "vert", NULL }; - parserDefinition* def = parserNew ("GLSL"); - def->kindTable = CKinds; - def->kindCount = ARRAY_SIZE (CKinds); - def->extensions = extensions; - def->parser2 = findCTags; - def->initialize = initializeGLSLParser; - return def; -} - extern parserDefinition* CsharpParser (void) { static const char *const extensions [] = { "cs", NULL }; diff --git a/data/filedefs/filetypes.CUDA.conf b/data/filedefs/filetypes.CUDA.conf index c29e1e3442..13c367bfe8 100644 --- a/data/filedefs/filetypes.CUDA.conf +++ b/data/filedefs/filetypes.CUDA.conf @@ -15,7 +15,7 @@ docComment=a addindex addtogroup anchor arg attention author authors b brief bug [settings] lexer_filetype=C -tag_parser=C++ +tag_parser=CUDA # default extension used when saving files extension=cu diff --git a/src/filetypes.c b/src/filetypes.c index 8a18133102..aab9b6056b 100644 --- a/src/filetypes.c +++ b/src/filetypes.c @@ -137,7 +137,7 @@ static void init_builtin_filetypes(void) FT_INIT( BASIC, FREEBASIC, "FreeBasic", NULL, SOURCE_FILE, COMPILED ); FT_INIT( FORTRAN, FORTRAN, "Fortran", "Fortran (F90)", SOURCE_FILE, COMPILED ); FT_INIT( F77, F77, "F77", "Fortran (F77)", SOURCE_FILE, COMPILED ); - FT_INIT( GLSL, GLSL, "GLSL", NULL, SOURCE_FILE, COMPILED ); + FT_INIT( GLSL, C, "GLSL", NULL, SOURCE_FILE, COMPILED ); FT_INIT( CAML, NONE, "CAML", "(O)Caml", SOURCE_FILE, COMPILED ); FT_INIT( PERL, PERL, "Perl", NULL, SOURCE_FILE, SCRIPT ); FT_INIT( PHP, PHP, "PHP", NULL, SOURCE_FILE, SCRIPT ); diff --git a/src/tagmanager/tm_parser.c b/src/tagmanager/tm_parser.c index 2a317ceab3..58ec5a29c8 100644 --- a/src/tagmanager/tm_parser.c +++ b/src/tagmanager/tm_parser.c @@ -409,7 +409,7 @@ static TMParserMapEntry map_MATLAB[] = { {'s', tm_tag_struct_t}, }; -#define map_GLSL map_C_old_parser +#define map_CUDA map_C /* not in universal-ctags */ static TMParserMapEntry map_VALA[] = { @@ -651,7 +651,7 @@ static TMParserMap parser_map[] = { MAP_ENTRY(REST), MAP_ENTRY(HTML), MAP_ENTRY(F77), - MAP_ENTRY(GLSL), + MAP_ENTRY(CUDA), MAP_ENTRY(MATLAB), MAP_ENTRY(VALA), MAP_ENTRY(ACTIONSCRIPT), @@ -1042,7 +1042,7 @@ const gchar *tm_parser_scope_separator(TMParserType lang) { case TM_PARSER_C: /* for C++ .h headers or C structs */ case TM_PARSER_CPP: - case TM_PARSER_GLSL: /* for structs */ + case TM_PARSER_CUDA: case TM_PARSER_PHP: case TM_PARSER_POWERSHELL: case TM_PARSER_RUST: @@ -1089,11 +1089,11 @@ gboolean tm_parser_has_full_scope(TMParserType lang) case TM_PARSER_ACTIONSCRIPT: case TM_PARSER_C: case TM_PARSER_CPP: + case TM_PARSER_CUDA: case TM_PARSER_CSHARP: case TM_PARSER_COBOL: case TM_PARSER_D: case TM_PARSER_GDSCRIPT: - case TM_PARSER_GLSL: case TM_PARSER_GO: case TM_PARSER_JAVA: case TM_PARSER_JAVASCRIPT: diff --git a/src/tagmanager/tm_parser.h b/src/tagmanager/tm_parser.h index 359b792997..1fcc2f20f5 100644 --- a/src/tagmanager/tm_parser.h +++ b/src/tagmanager/tm_parser.h @@ -90,7 +90,7 @@ enum TM_PARSER_REST, TM_PARSER_HTML, TM_PARSER_F77, - TM_PARSER_GLSL, + TM_PARSER_CUDA, TM_PARSER_MATLAB, TM_PARSER_VALA, TM_PARSER_ACTIONSCRIPT, diff --git a/src/tagmanager/tm_parsers.h b/src/tagmanager/tm_parsers.h index dd49b6cee8..8492dceb18 100644 --- a/src/tagmanager/tm_parsers.h +++ b/src/tagmanager/tm_parsers.h @@ -46,7 +46,7 @@ RstParser, \ HtmlParser, \ F77Parser, \ - GLSLParser, \ + CUDAParser, \ MatLabParser, \ ValaParser, \ FlexParser, \